matlab30个案例分析案例14-SVM神经网络的回归预测分析.docx

matlab30个案例分析案例14-SVM神经网络的回归预测分析.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab30个案例分析案例14-SVM神经网络的回归预测分析

%% SVM神经网络的回归预测分析---上证指数开盘指数预测 % %% 清空环境变量 function chapter14 tic; close all; clear; clc; format compact; %% 数据的提取和预处理 % 载入测试数据上证指数(1990.12.19-2009.08.19) % 数据是一个4579*6的double型的矩阵,每一行表示每一天的上证指数 % 6列分别表示当天上证指数的开盘指数,指数最高值,指数最低值,收盘指数,当日交易量,当日交易额. load chapter14_sh.mat; % 提取数据 [m,n] = size(sh); ts = sh(2:m,1); tsx = sh(1:m-1,:); % 画出原始上证指数的每日开盘数 figure; plot(ts,LineWidth,2); title(上证指数的每日开盘数(1990.12.20-2009.08.19),FontSize,12); xlabel(交易日天数(1990.12.19-2009.08.19),FontSize,12); ylabel(开盘数,FontSize,12); grid on; % 数据预处理,将原始数据进行归一化 ts = ts; tsx = tsx; % mapminmax为matlab自带的映射函数 % 对ts进行归一化 [TS,TSps] = mapminmax(ts,1,2); % 画出原始上证指数的每日开盘数归一化后的图像 figure; plot(TS,LineWidth,2); title(原始上证指数的每日开盘数归一化后的图像,FontSize,12); xlabel(交易日天数(1990.12.19-2009.08.19),FontSize,12); ylabel(归一化后的开盘数,FontSize,12); grid on; % 对TS进行转置,以符合libsvm工具箱的数据格式要求 TS = TS; % mapminmax为matlab自带的映射函数 % 对tsx进行归一化 [TSX,TSXps] = mapminmax(tsx,1,2); % 对TSX进行转置,以符合libsvm工具箱的数据格式要求 TSX = TSX; %% 选择回归预测分析最佳的SVM参数cg % 首先进行粗略选择: [bestmse,bestc,bestg] = SVMcgForRegress(TS,TSX,-8,8,-8,8); % 打印粗略选择结果 disp(打印粗略选择结果); str = sprintf( Best Cross Validation MSE = %g Best c = %g Best g = %g,bestmse,bestc,bestg); disp(str); % 根据粗略选择的结果图再进行精细选择: [bestmse,bestc,bestg] = SVMcgForRegress(TS,TSX,-4,4,-4,4,3,0.5,0.5,0.05); % 打印精细选择结果 disp(打印精细选择结果); str = sprintf( Best Cross Validation MSE = %g Best c = %g Best g = %g,bestmse,bestc,bestg); disp(str); %% 利用回归预测分析最佳的参数进行SVM网络训练 cmd = [-c , num2str(bestc), -g , num2str(bestg) , -s 3 -p 0.01]; model = svmtrain(TS,TSX,cmd); %% SVM网络回归预测 [predict,mse] = svmpredict(TS,TSX,model); predict = mapminmax(reverse,predict,TSps); predict = predict; % 打印回归结果 str = sprintf( 均方误差 MSE = %g 相关系数 R = %g%%,mse(2),mse(3)*100); disp(str); %% 结果分析 figure; hold on; plot(ts,-o); plot(predict,r-^); legend(原始数据,回归预测数据); hold off; title(原始数据和回归预测数据对比,FontSize,12); xlabel(交易日天数(1990.12.19-2009.08.19),FontSize,12); ylabel(开盘数,FontSize,12); grid on; figure; error = predict - ts; plot(error,rd); title(误差图(predic

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档