24小时热门版块排行榜    

查看: 380  |  回复: 1

luxinjiang

新虫 (初入文坛)

[求助] 求助LS-SVM线性核建模问题

我用http://www.esat.kuleuven.be/sista/lssvmlab/网站的标准软件建立了线性核的模型(输入为8个,输出为一个,简单的自回归模型),但使用书上的线性核的公式再写了一遍,结果却不一样,我也查了标准软件的公式,跟我写的好像没什么区别,不知道是哪里出了问题?请各位帮忙看下我的线性核LS-SVM到底错在哪里,谢谢。

以下是我的程序:

clear all;

  gam=10000000; %Regularization paramete 0.9
  sig2=0;
  
% 产生数据
y(1)=0;
u=1.5*randn(1000)-3;

for k=1:1000
    y(k+1)=0.1*y(k)-20*u(k)+0.1*u(k)^2;  %单输出
end

% 8个输入,用于LS-SVM建模
for k=1:997
U(k,=[u(k+3) u(k+2) u(k+1) u(k) y(k+3) y(k+2) y(k+1) y(k)];
end

% 线性LS-SVM训练
[alpha,b] = trainlssvm({U,y(5:1001)','f',gam,sig2,'lin_kernel'});%'lin_kernel'
plotlssvm({U,y(5:1001)','f',gam, sig2, 'lin_kernel'}, {alpha,b});

yT(1)=0;
yT(2)=0;
yT(3)=0;
yT(4)=0;
uT(1)=0;
uT(2)=0;
uT(3)=0;
uT(4)=0;

% 一组数据测试
for k=4:100
    uT(k)=0.75*sin(2*pi*k/50)+0.75*sin(2*pi*k/25);  %真实的输入
    yT(k+1)=0.1*yT(k)-20*uT(k)+0.1*uT(k)^2;          %真实的输出
    UT(k,=[uT(k) uT(k-1) uT(k-2) uT(k-3) yT(k) yT(k-1) yT(k-2) yT(k-3)]; %构建LS-SVM输入
end


Y=simlssvm({U,y(5:1001)','f',gam, sig2, 'lin_kernel'},{alpha,b},UT); %LS-SVM模型输出

% for i=1:997
%     e(i)=yT(i+4)-Y(i);
% end
plot(1:100,yT(2:101),'r',1:100,Y) % 对比真实值与LS-SVM的预测值,拟合很好

pause

%********************************************************************************************************
% 以下的程序为校核线性LS-SVM的工作原理

yy(1)=0;
yy(2)=0;
yy(3)=0;
yy(4)=0;
uu(1)=0;
uu(2)=0;
uu(3)=0;


for k=4:100
    uu(k)=0.75*sin(2*pi*k/50)+0.75*sin(2*pi*k/25); % 与上面的uT一致
   
    yT(k+1)=0.1*yT(k)-20*uu(k)+0.1*uu(k)^2;  % 与上面的yT一致
     
    % 以下为按照LS-SVM计算公式预测模型的输出
    % 方法1;
    a0=uu(k)*alpha'*U(:,1);
    a1=uu(k-1)*alpha'*U(:,2);
    a2=uu(k-2)*alpha'*U(:,3);
    a3=uu(k-3)*alpha'*U(:,4);
   
    a4=yT(k)*alpha'*U(:,5);
    a5=yT(k-1)*alpha'*U(:,6);
    a6=yT(k-2)*alpha'*U(:,7);
    a7=yT(k-3)*alpha'*U(:,8);
   
    yy(k+1)=a0+a1+a2+a3+a4+a5+a6+a7+b;
      
     % 方法2,其实与方法1一样
    yy(k+1)=alpha'*U*[uu(k) uu(k-1) uu(k-2) uu(k-3) yT(k) yT(k-1) yT(k-2) yT(k-3)]'+b;
         
end
  
% 方法3,还是与上两个是一致的
yc=(U*UT')'*alpha+ones(size(UT,1),1)*b;

plot(1:97,yT(5:101),'r',1:97,yc(4:100)) % 对比真实值与按照LS-SVM计算公式预测模型的输出,但效果很差,错在那个地方???
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

luxinjiang

新虫 (初入文坛)

2楼2014-06-16 16:53:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 luxinjiang 的主题更新
信息提示
请填处理意见