iloveyy 发表于 2006-11-3 18:00

关于svm的泛化问题

大家好 我使用的是svm工具箱
训练一个支持向量机并进行泛化 , 其中一部分数据进行训练,一部分进行泛化
程序如下
clear all

num=1;
den=;
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);

% = 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 = svr(X,Y,ker,C,loss,e)
= 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 编辑 ]

tz6091 发表于 2006-11-3 20:01

呵呵.没用过这个工具箱不过一般都和参数的选取有关.不知道你的参数选取是否符合你数据的要求
页: [1]
查看完整版本: 关于svm的泛化问题