马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
大家好 我使用的是svm工具箱
训练一个支持向量机并进行泛化 , 其中一部分数据进行训练,一部分进行泛化
程序如下
clear all
num=1;
den=[1 2];
sys=tf(num,den);
%
t=linspace(0,4*pi,120);
r=sin(t).*cos(t)+(0.1*rand(size(t)));
r=r';
y=lsim(sys,r,t);
%[X, A, B] = svdatanorm(X,ker,isotropic)
%
for i=1:55;j=2*i+1;
r1(i,1)=r(j,1);
y1(i,1)=y(j,1);
t1(1,i)=t(1,j);
end
for i=1:55;j=2*i+2;
r2(i,1)=r(j,1);
y2(i,1)=y(j,1);
t2(1,i)=t(1,j);
end
p1=1;
%function [nsv, beta, bias] = svr(X,Y,ker,C,loss,e)
[nsv, beta, bias] = svr(r1,y1,'rbf',Inf,'eInsensitive',0.1); %rbf参数>0.3
%function tstY = svroutput(trnX,tstX,ker,beta,bias)
yy = svroutput(r1,r1,'rbf',beta,bias);
figure(1)
plyy=plot(t1,yy,'ro');
hold on
plr=plot(t,r,'k:');
ply=plot(t,y,'b-');
yy1 = svroutput(r1,r2,'rbf',beta,bias);
figure(2)
plyy1=plot(t2,yy1,'ro');
hold on
plr1=plot(t,r,'k:');
ply1=plot(t,y,'b-');
效果很不好,好像跟e的选取有关,e>0.01后训练和泛化都不是很好.但是e<0.01训练效果好,但是几乎不能泛化,各位大侠帮忙看一下,谢谢啦!
[ 本帖最后由 lxq 于 2006-11-3 20:10 编辑 ] |