LS-SVM算法预测实例+程序讲解

可以直接使用的LS-SVM预测算法+程序讲解。。。。

close all;
a=xlsread(' 用于预测的训练数据');   % 输入预测的训练据  (列数据)
a = a(:).';
c=xlsread(' 用于驯练的影响因素');   % 输入影响因素的训练数据 (列数据)
X=c;
Y=a';
gam=3500;    %可自行修改gam的值,影响着训练效果,越大训练效果越强,但是过大的话会导致过拟合,即训练失败
sig2=1400;     %可自行修改sig2的值,取值范围为0-10000;影响训练、预测精度;
type = 'function approximation';        %函数声明
[alpha,b] = trainlssvm({X,Y,type,gam,sig2,'RBF_kernel'});    %训练函数

Xt=xlsread('用于预测的影响因素 ');

plotlssvm({X,Y,type,gam,sig2,'RBF_kernel','preprocess'},{alpha,b},X);   %训练效果图

Yt = simlssvm({X,Y,type,gam,sig2,'RBF_kernel','preprocess'},{alpha,b},Xt);   %预测出的值     

% 以下为作图;不需要的话可以省略

h=[Y;Yt];
g=xlsread('被预测的实际值');    %后面作图所用,用于对比结果的精度
f=[Y;g];
figure(1);
X=1998:2015;               %作图时的横坐标值,需自行修改
plot(X,h,'r*',X,f,'bo');
title('o真实值,*预测值');
z=Yt-g;
z=z/g;
z=z*100
x1=2011:2015;
plot(x1,z,'b')
title('误差变化图')
u2=sum(sum(abs(z)))/5
u3=zeros(5,1);
for i=1:5
    u3(i,1)=(abs(z(i,5))-u2)*(abs(z(i,5))-u2);
end
fancha=sum(u3)/5
plot(x1,z,'r',x1,u3,'b')
title('方差与误差');

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值