lzh19840809 发表于 2009-5-11 14:51

使用支持向量机预测的效果咋这么差

样本数据是
要预测的是
因为是实测数据,所以我先把数据进行了归一化处理。后面进行了反归一化。但是预测的效果实在是太差了,惨不忍睹啊,参数修改了好多次,还是这个样。请大牛们看看是咋回事呢?
—————————————————————————————————————————————————————————————
clc
clear
close all
A=load('data.txt')      %读取所有数据
%---------------------------------------------------------
%选取1-400个数据
x=1:1:400
y=A(1:1:400)
%选取1-400,间隔为2的200个数据作为样本数据
x_train1=1:2:400
y_train1=A(1:2:400)
%选取2-400,间隔为2的200个数据作为测试数据
x_test1=2:2:400
y_test1=A(2:2:400)
%归一化
for i=1:200
y_train2(i)=(y_train1(i)-min(y_train1))/(max(y_train1)-min(y_train1));
y_test2(i)=(y_test1(i)-min(y_test1))/(max(y_test1)-min(y_test1));
end
%定义SVR 参数
global p1 ;
p1=3
ker='erbf';                               % 核函数 k = exp(-(u-v)*(u-v)'/(2*p1^2))
C=100000;
e=0.0001;
loss='einsensitive';
%训练支持向量机
= svr(x_train1',y_train2',ker,C,loss,e);            % 训练样本数据。
y_test3 = svroutput(x_train1',x_test1',ker,beta,bias);   % 测试样本数据
%反归一化
for i=1:200
y_test4=(max(y_test1)-min(y_test1))*y_test3+min(y_test1)
end
plot(x_test1,y_test1,'b:',x_test1,y_test4,'r-')
title('蓝色——实际数据,红色——测试数据')
grid on

luoye919 发表于 2009-5-12 21:16

修改核函数,看看效果怎么样。。。
   我用rbf 核函数 也很差

lzh19840809 发表于 2009-5-13 16:38

回复 沙发 luoye919 的帖子

试过了,换成rbf核函数也没多大改观。我想还是有其他的问题。

zenghui41 发表于 2009-7-2 15:35

修改一下惩罚系数和rbf的宽度参数试试看

rogen 发表于 2009-7-15 21:18

回复 楼主 lzh19840809 的帖子

刚在学习中....

liuw79 发表于 2009-8-28 21:35

学习中,多请教

277729610 发表于 2009-9-1 10:45

不要归一化试试

博弈论 发表于 2009-9-20 21:51

c 为什么取10000?还有e取0.0001?用libsvm试试。先穷举求最优参数,然后训练,预测。

ssnh 发表于 2009-10-7 06:57

楼主能不能把你的data.txt文件共享出来,帮你看看问题
页: [1]
查看完整版本: 使用支持向量机预测的效果咋这么差