资源描述:
《回归预测分析---SVM神经网络.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、%%SVM神经网络的回归预测分析---上证指数开盘指数预测%%清空环境变量functionchapter14tic;closeall;clear;clc;formatcompact;%%数据的提取和预处理%载入测试数据上证指数(1990.12.19-2009.08.19)%数据是一个4579*6的double型的矩阵,每一行表示每一天的上证指数%6列分别表示当天上证指数的开盘指数,指数最高值,指数最低值,收盘指数,当日交易量,当日交易额.loadchapter14_sh.mat;%提取数据[m,n]=size(sh);ts=sh(2:m,1);t
2、sx=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);gridon;%数据预处理,将原始数据进行归一化ts=ts';tsx=tsx';%mapminmax为matlab自带的映射函数%对ts进行归一化[TS,T
3、Sps]=mapminmax(ts,1,2);%画出原始上证指数的每日开盘数归一化后的图像figure;plot(TS,'LineWidth',2);title('原始上证指数的每日开盘数归一化后的图像','FontSize',12);xlabel('交易日天数(1990.12.19-2009.08.19)','FontSize',12);ylabel('归一化后的开盘数','FontSize',12);gridon;%对TS进行转置,以符合libsvm工具箱的数据格式要求TS=TS';%mapminmax为matlab自带的映射函数%对tsx进
4、行归一化[TSX,TSXps]=mapminmax(tsx,1,2);%对TSX进行转置,以符合libsvm工具箱的数据格式要求TSX=TSX';%%选择回归预测分析最佳的SVM参数c&g%首先进行粗略选择:[bestmse,bestc,bestg]=SVMcgForRegress(TS,TSX,-8,8,-8,8);%打印粗略选择结果disp('打印粗略选择结果');str=sprintf('BestCrossValidationMSE=%gBestc=%gBestg=%g',bestmse,bestc,bestg);disp(str);%根据
5、粗略选择的结果图再进行精细选择:[bestmse,bestc,bestg]=SVMcgForRegress(TS,TSX,-4,4,-4,4,3,0.5,0.5,0.05);%打印精细选择结果disp('打印精细选择结果');str=sprintf('BestCrossValidationMSE=%gBestc=%gBestg=%g',bestmse,bestc,bestg);disp(str);%%利用回归预测分析最佳的参数进行SVM网络训练cmd=['-c',num2str(bestc),'-g',num2str(bestg),'-s3-p0
6、.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;holdon;plot(ts,'-o');plot(predict,'r-^');legend('
7、原始数据','回归预测数据');holdoff;title('原始数据和回归预测数据对比','FontSize',12);xlabel('交易日天数(1990.12.19-2009.08.19)','FontSize',12);ylabel('开盘数','FontSize',12);gridon;figure;error=predict-ts';plot(error,'rd');title('误差图(predicteddata-originaldata)','FontSize',12);xlabel('交易日天数(1990.12.19-2009.
8、08.19)','FontSize',12);ylabel('误差量','FontSize',12);gridon;figure;err