|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
x1=0:pi/20:2*pi %样本
y1=sin(x1) %样本
x2=0:pi/20:2*pi %测试值
y2=sin(x2) %测试值
在这种情况下是可以预测的,而且效果还不错。
但是如果换成
x1=0:pi/20:2*pi %样本
y1=sin(x1) %样本
x2=0:pi/20:4*pi %测试值
y2=sin(x2) %测试值
0-2*pi的预测也是可以的,但是2*pi-4*pi就没法预测了,这是怎么回事呢?求高手来解答
附源代码:
clc
clear
close all
x1=0:pi/20:2*pi
y1=sin(x1)
x2=0:pi/20:4*pi
y2=sin(x2)
%定义SVR 参数
global p1 ;
p1=1
ker='erbf'; % 核函数 k = exp(-(u-v)*(u-v)'/(2*p1^2))
C=1000;
e=0.01;
loss='einsensitive';
%训练支持向量机
[nsv beta bias] = svr(x1',y1',ker,C,loss,e); % 训练样本数据。
ytest2= svroutput(x1',x2',ker,beta,bias); % 测试样本数据
plot(x2,y2,'r+:',x2,ytest2,'bo') |
|