声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3062|回复: 8

[人工智能] 使用支持向量机预测的效果咋这么差

[复制链接]
发表于 2009-5-11 14:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
样本数据是[1 3 5 7 -----]
要预测的是[2 4 6 8 -----]
因为是实测数据,所以我先把数据进行了归一化处理。后面进行了反归一化。但是预测的效果实在是太差了,惨不忍睹啊,参数修改了好多次,还是这个样。请大牛们看看是咋回事呢?
—————————————————————————————————————————————————————————————
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';
%训练支持向量机
[nsv beta bias] = 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
svm.jpg

data.txt

3.52 KB, 下载次数: 40

回复
分享到:

使用道具 举报

发表于 2009-5-12 21:16 | 显示全部楼层
修改核函数,看看效果怎么样。。。
     我用rbf 核函数 也很差
 楼主| 发表于 2009-5-13 16:38 | 显示全部楼层

回复 沙发 luoye919 的帖子

试过了,换成rbf核函数也没多大改观。我想还是有其他的问题。
发表于 2009-7-2 15:35 | 显示全部楼层
修改一下惩罚系数和rbf的宽度参数试试看
发表于 2009-7-15 21:18 | 显示全部楼层

回复 楼主 lzh19840809 的帖子

刚在学习中....
发表于 2009-8-28 21:35 | 显示全部楼层
学习中,多请教
发表于 2009-9-1 10:45 | 显示全部楼层
不要归一化试试
发表于 2009-9-20 21:51 | 显示全部楼层
c 为什么取10000?还有e取0.0001?用libsvm试试。先穷举求最优参数,然后训练,预测。
发表于 2009-10-7 06:57 | 显示全部楼层
楼主能不能把你的data.txt文件共享出来,帮你看看问题
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-29 05:15 , Processed in 0.065976 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表