matlab30个案例分析案例14-SVM神经网络的回归预测分析Word格式文档下载.docx

上传人:b****2 文档编号:13287743 上传时间:2022-10-09 格式:DOCX 页数:5 大小:19.42KB
下载 相关 举报
matlab30个案例分析案例14-SVM神经网络的回归预测分析Word格式文档下载.docx_第1页
第1页 / 共5页
matlab30个案例分析案例14-SVM神经网络的回归预测分析Word格式文档下载.docx_第2页
第2页 / 共5页
matlab30个案例分析案例14-SVM神经网络的回归预测分析Word格式文档下载.docx_第3页
第3页 / 共5页
matlab30个案例分析案例14-SVM神经网络的回归预测分析Word格式文档下载.docx_第4页
第4页 / 共5页
matlab30个案例分析案例14-SVM神经网络的回归预测分析Word格式文档下载.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

matlab30个案例分析案例14-SVM神经网络的回归预测分析Word格式文档下载.docx

《matlab30个案例分析案例14-SVM神经网络的回归预测分析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《matlab30个案例分析案例14-SVM神经网络的回归预测分析Word格式文档下载.docx(5页珍藏版)》请在冰豆网上搜索。

matlab30个案例分析案例14-SVM神经网络的回归预测分析Word格式文档下载.docx

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

figure;

plot(ts,'

LineWidth'

2);

title('

上证指数的每日开盘数(1990.12.20-2009.08.19)'

'

FontSize'

12);

xlabel('

交易日天数(1990.12.19-2009.08.19)'

ylabel('

开盘数'

gridon;

%数据预处理,将原始数据进行归一化

ts=ts'

;

tsx=tsx'

%mapminmax为matlab自带的映射函数

%对ts进行归一化

[TS,TSps]=mapminmax(ts,1,2);

%画出原始上证指数的每日开盘数归一化后的图像

plot(TS,'

原始上证指数的每日开盘数归一化后的图像'

归一化后的开盘数'

%对TS进行转置,以符合libsvm工具箱的数据格式要求

TS=TS'

%mapminmax为matlab自带的映射函数

%对tsx进行归一化

[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);

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

[bestmse,bestc,bestg]=SVMcgForRegress(TS,TSX,-4,4,-4,4,3,0.5,0.5,0.05);

%打印精细选择结果

打印精细选择结果'

%%利用回归预测分析最佳的参数进行SVM网络训练

cmd=['

-c'

num2str(bestc),'

-g'

num2str(bestg),'

-s3-p0.01'

];

model=svmtrain(TS,TSX,cmd);

%%SVM网络回归预测

[predict,mse]=svmpredict(TS,TSX,model);

predict=mapminmax('

reverse'

predict'

TSps);

predict=predict'

%打印回归结果

均方误差MSE=%g相关系数R=%g%%'

mse

(2),mse(3)*100);

%%结果分析

holdon;

-o'

plot(predict,'

r-^'

legend('

原始数据'

回归预测数据'

holdoff;

原始数据和回归预测数据对比'

error=predict-ts'

plot(error,'

rd'

误差图(predicteddata-originaldata)'

误差量'

error=(predict-ts'

)./ts'

相对误差图(predicteddata-originaldata)/originaldata'

相对误差量'

snapnow;

toc;

%%子函数SVMcgForRegress.m

function[mse,bestc,bestg]=SVMcgForRegress(train_label,train,cmin,cmax,gmin,gmax,v,cstep,gstep,msestep)

%SVMcgcrossvalidationbyfaruto

%byfaruto

%Email:

patrick.lee@QQ:

516667408BNU

%lastmodified2010.01.17

%SuperModerator@

%若转载请注明:

%farutoandliyang,LIBSVM-farutoUltimateVersion

%atoolboxwithimplementsforsupportvectormachinesbasedonlibsvm,2009.

%Softwareavailableat

%

%Chih-ChungChangandChih-JenLin,LIBSVM:

alibraryfor

%supportvectormachines,2001.Softwareavailableat

%http:

//www.csie.ntu.edu.tw/~cjlin/libsvm

%abouttheparametersofSVMcg

ifnargin<

10

msestep=0.06;

end

8

cstep=0.8;

gstep=0.8;

7

v=5;

5

gmax=8;

gmin=-8;

3

cmax=8;

cmin=-8;

%X:

cY:

gcg:

acc

[X,Y]=meshgrid(cmin:

cstep:

cmax,gmin:

gstep:

gmax);

[m,n]=size(X);

cg=zeros(m,n);

eps=10^(-4);

bestc=0;

bestg=0;

mse=Inf;

basenum=2;

fori=1:

m

forj=1:

n

cmd=['

-v'

num2str(v),'

-c'

num2str(basenum^X(i,j)),'

num2str(basenum^Y(i,j)),'

-s3-p0.1'

cg(i,j)=svmtrain(train_label,train,cmd);

ifcg(i,j)<

mse

mse=cg(i,j);

bestc=basenum^X(i,j);

bestg=basenum^Y(i,j);

end

ifabs(cg(i,j)-mse)<

=eps&

&

bestc>

basenum^X(i,j)

end

%todrawtheaccwithdifferentc&

g

[cg,ps]=mapminmax(cg,0,1);

[C,h]=contour(X,Y,cg,0:

msestep:

0.5);

clabel(C,h,'

10,'

Color'

r'

log2c'

log2g'

firstline='

SVR参数选择结果图(等高线图)[GridSearchMethod]'

secondline=['

Bestc='

num2str(bestc),'

g='

num2str(bestg),...

'

CVmse='

num2str(mse)];

title({firstline;

secondline},'

Fontsize'

meshc(X,Y,cg);

%mesh(X,Y,cg);

%surf(X,Y,cg);

axis([cmin,cmax,gmin,gmax,0,1]);

zlabel('

MSE'

SVR参数选择结果图(3D视图)[GridSearchMethod]'

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1