关键词不能为空

当前您在: 主页 > 英语 >

SVM神经网络的信息粒化时序回归预测

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-10 05:54
tags:

-

2021年2月10日发(作者:驳杂)


%% SVM


神经网络的信息粒化时序回归预测


----


上证指数开盘指数变化趋势和变化空间预测





%%


清空环境变量



function chapter15


tic;


close all;


clear;


clc;


format compact;


%%


原始数据的提取




%


载入测试数据上证指数


(1990 .12.19-2009.08.19)


%


数据是一个


4579*6



double


型的矩阵


,


每一行表示每一天的上证指数

< p>


%


6


列分别表示当天 上证指数的开盘指数


,


指数最高值


,< /p>


指数最低值


,


收盘指数

< br>,


当日交易量


,



日交易额


.


load chapter15_;



%


提取数据



ts = sh_open;


time = length(ts);



%


画出原始上证指数的每日开盘数



figure;


plot(ts,'LineWidth',2);


titl e('


上证指数的每日开盘数


(1990.12.20-200 9.08.19)','FontSize',12);


xlabel('

< p>
交易日天数


(1990.12.19-2009.08.19)','Fo ntSize',12);


ylabel('


开盘数


','FontSize',12);


grid on;


print -dtiff -r600 original;



snapnow;



%%


对原始数据进行模糊信息粒化




win_num = floor(time/5);


tsx = 1:win_num;


tsx = tsx';


[Low,R,Up]=FIG_D(ts','triangle',win_num );



%


模糊信息粒化可视化图



figure;


hold on;


plot(Low,'b+');


plot(R,'r*');


plot(Up,'gx');


hold off;


legend('Low','R','Up',2);


ti tle('


模糊信息粒化可视化图


','FontSize', 12);


xlabel('


粒化窗口数目

','FontSize',12);


ylabel('


粒化值


','FontSize',12);


grid on;


print -dtiff -r600 FIGpic;



snapnow;


%%


利用


SVM



Low< /p>


进行回归预测




%


数据预处理


,


Low


进行归一化处理



% mapminmax



matla b


自带的映射函数



[low,low_ps] = mapminmax(Low);


low_ = 100;


low_ = 500;


%



Low


进行归一化



[low,low_ps] = mapminmax(Low,low_ps);


%


画出< /p>


Low


归一化后的图像



figure;


plot(low,'b+');


title('Low


归一化后的图像


','F ontSize',12);


xlabel('


粒化窗口数目


','FontSize',12);


ylabel('


归一化后的粒化值


','FontSize',12);


grid on;


print -dtiff -r600 lowscale;


%



low< /p>


进行转置


,


以符合


libsvm


工具箱的数据格式要求



low = low';


snapnow;



%


选择回归预测分析中最佳的


SVM


参数


c&g


%


首先进行粗略选择



[bestmse,bestc,bestg] = SVMcgForRegress (low,tsx,-10,10,-10,10,3,1,1,0.1,1);



%


打印粗略选择结果



disp('


打印粗略选择结果


');


str


=


sprintf(


'SVM


parameters


for


Low:Best


Cross


Validation


MSE


=


%g


Best


c


=


%g


Best


g


= %g',bestmse,bestc,bestg);


disp(str);



%


根据粗略选择的结果图再进行精细选择



[bestmse,bestc,bestg] = SVMcgForRegress (low,tsx,-4,8,-10,10,3,0.5,0.5,0.05,1);



%


打印精细选择结果



disp('


打印精细选择结果


');


str


=


sprintf(


'SVM


parameters


for


Low: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.1'];


low_model = svmtrain(low, tsx, cmd);



%


预测



[low_predict,low_mse] = svmpredict(low,tsx,low_model);


low_predict = mapminmax('reverse',low_predict,low_ps);


predict_low = svmpredict(1,win_num+1,low_model);


predict_low = mapminmax('reverse',predict_low,low_ps);


predict_low



%% < /p>


对于


Low


的回归预测结果分析



figure;


hold on;


plot(Low,'b+');


plot(low_predict,'r*');


legend('original low','predict low',2);


title('original vs predict','FontSize',12);


xlabel('


粒化窗口数目


','FontSize',12);


ylabel('


粒化值


','FontSize',12) ;


grid on;


print -dtiff -r600 lowresult;



figure;


error = low_predict - Low';


plot(error,'ro');


title('


误差


(predicted data-original data)','FontSize',12);


xlabel('

< br>粒化窗口数目


','FontSize',12);


y label('


误差量


','FontSize',12);


grid on;


print -dtiff -r600 lowresulterror;



snapnow;



%%


利用


SVM



R


进行回归预测




%


数据预处理


,



R


进行归一化处 理



% mapminmax



matlab


自带的映射函数



[r,r_ps] = mapminmax(R);


r_ = 100;


r_ = 500;


%


R


进行归一化



[r,r_ps] = mapminmax(R,r_ps);


%


画出


R


归 一化后的图像



figure;


plot(r,'r*');


title('r


归一化后的图像


','FontSize',12);


grid on;


%


< p>
R


进行转置


,


以符合


libsvm


工具箱的数据格式要求



r = r';


snapnow;



%


选择回归预测分析中最佳的


SVM


参数


c&g


%


首先进行粗略选择



[bestmse,bestc,bestg] = SVMcgForRegress(r,tsx,-10,10,-10,10,3,1,1,0.1);



%


打印粗略选择结果



disp('


打印粗略选择结果


');


str


=


sprintf(


'SVM


parameters


for


R:Best


Cross


Validation


MSE


=


%g


Best


c


=


%g


Best


g


= %g',bestmse,bestc,bestg);


disp(str);



%


根据粗略选择的结果图再进行精细选择



[bestmse,bestc,bestg] = SVMcgForRegress(r,tsx,-4,8,-10,10,3,0.5,0.5,0.05);



%


打印精细选择结果



disp('


打印精细选择结果


');


str


=


sprintf(


'SVM


parameters


for


R: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.1'];


r_model = svmtrain(r, tsx, cmd);



%


预测



[r_predict,r_mse] = svmpredict(r,tsx,low_model);


r_predict = mapminmax('reverse',r_predict,r_ps);


predict_r = svmpredict(1,win_num+1,r_model);


predict_r = mapminmax('reverse',predict_r,r_ps);


predict_r



%%


对于


R


的回归预测结果分析

< br>


figure;


hold on;


plot(R,'b+');


plot(r_predict,'r*');


legend('original r','predict r',2);


title('original vs predict','FontSize',12);


grid on;


figure;


error = r_predict - R';


plot(error,'ro');


title( '


误差


(predicted data-original data)','FontSize',12);


grid on;


snapnow;



%%


利用


SVM



Up


进行回归预测




%


数据预处理


,


up


进行归一化处理



% mapminmax



matla b


自带的映射函数



[up,up_ps] = mapminmax(Up);


up_ = 100;


up_ = 500;


%



Up


进 行归一化



[up,up_ps] = mapminmax(Up,up_ps);


%


画出


Up


归一化后的图像



figure;


plot(up,'gx');

< p>
title('Up


归一化后的图像


','Fon tSize',12);


grid on;


%

< p>


up


进行转置


,


以符合


libsvm


工具箱的数据格式要求< /p>



up = up';


snapnow;



%

< p>
选择回归预测分析中最佳的


SVM


参数

< p>
c&g


%


首先进行粗略选择



[bestmse,bestc,bestg] = SVMcgForRegress(up,tsx,-10,10,-10,10,3,1,1,0.5);



%


打印粗略选择结果



disp('


打印粗略选择结果


');


str


=


sprintf(


'SVM


parameters


for


Up:Best


Cross


Validation


MSE


=


%g


Best


c


=


%g


Best


g


= %g',bestmse,bestc,bestg);


disp(str);



%


根据粗略选择的结果图再进行精细选择



[bestmse,bestc,bestg] = SVMcgForRegress(up,tsx,-4,8,-10,10,3,0.5,0.5,0.2);



%


打印精细选择结果



disp('


打印精细选择结果


');


str


=


sprintf(


'SVM


parameters


for


Up: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.1'];


up_model = svmtrain(up, tsx, cmd);



%


预测



[up_predict,up_mse] = svmpredict(up,tsx,up_model);


up_predict = mapminmax('reverse',up_predict,up_ps);


predict_up = svmpredict(1,win_num+1,up_model);


predict_up = mapminmax('reverse',predict_up,up_ps);


predict_up



%%


对于


Up


的回归预测结果分析



figure;


hold on;


plot(Up,'b+');


plot(up_predict,'r*');


legend('original up','predict up',2);


title('original vs predict','FontSize',12);


grid on;


figure;


error = up_predict - Up';


plot(error,'ro');


title ('


误差


(predicted data-original data)','FontSize',12);


grid on;


toc;


snapnow;



%%


子函数



SVMcgForRegress.m


function


[mse,bestc,bestg]


=

< br>SVMcgForRegress(train_label,train,cmin,cmax,gmi n,gmax,v,cstep,gstep,msestep,flag)


% SVMcgForClass


%


输入


:


% train_label :


训练集标签


.


要求与


libsvm


工具箱中要求一致


.


% train:


训练集


.

< p>
要求与


libsvm


工具箱中要求一致

< p>
.


% cmin:


惩罚参数

c


的变化范围的最小值


(


取以


2


为底的对数后


),




c_min = 2^(cmin).


默认为



-5


%


cmax:


惩罚参数


c


的变化范围的最大值


(


取 以


2


为底的对数后


),




c_max = 2^(cmax).


默认为



5


% gmin:


参数


g


的变化范围的最小值


(


取以


2


为底的对数后


),


< br>


g_min = 2^(gmin).


默认为



-5


% gmax:


参数


g


的变化范围的最小值


(


取以


2


为底的对数后


),


< br>


g_min = 2^(gmax).


默认为



5


% v:cross validation


的参数

< p>
,


即给测试集分为几部分进行


cross validation.


默认为



3


% cstep:


参数


c


步进的大小


.


默认为



1


% gstep:


参数

< p>
g


步进的大小


.


默认为< /p>



1


% msestep:

< p>
最后显示


MSE


图时的步进大小

< br>.


默认为



20


%


输出


:


% bestacc:Cross Validation


过程中的最高分类准确率



% bestc:


最佳的参数


c


% bestg:


最佳的参数


g



% about the parameters of SVMcgForRegress


if nargin < 11






flag = 0;


end


if nargin < 10






msestep = 0.1;


end


if nargin < 7






msestep = 0.1;






v = 3;






cstep = 1;






gstep = 1;


end


if nargin < 6






msestep = 0.1;






v = 3;






cstep = 1;






gstep = 1;






gmax = 5;


end


if nargin < 5






msestep = 0.1;






v = 3;






cstep = 1;






gstep = 1;






gmax = 5;






gmin = -5;


end


if nargin < 4






msestep = 0.1;






v = 3;






cstep = 1;

-


-


-


-


-


-


-


-



本文更新与2021-02-10 05:54,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/626870.html

SVM神经网络的信息粒化时序回归预测的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文