如何解决为什么 Matlab SVR 不适用于指数数据,而适用于波动的数据?
我正在用 Matlab 中的 SVR 函数做一些测试。一个有一组波动的数据,另一个是平滑的指数数据。使用 1st,SVR 能够执行良好的回归,但使用指数数据甚至没有得到相同的趋势。为什么?
波动数据的代码和结果
%% SVR TEST DATA WITH FLUCTUATUATIONS
clear all
load carsmall
rng 'default' % For reproducibility
index=1:100;
index=index';
X = [Horsepower(1:90,1),Weight(1:90,1)];
Y = MPG(1:90,1);
Mdl = fitrsvm(X,Y)
%% Regression test
% Using the regression model to get last 10% of Horsepower
YFit = predict(Mdl,[Horsepower,Weight]);
%%
plot(MPG,'LineWidth',1);
hold on
plot(index(90:end),YFit(90:end),2);
plot(index(1:90),YFit(1:90),2);
legend('Real data','Unseen-data regression','Seen-data regression')
set(gca,'fontsize',15);
grid on;
grid minor;
xlabel('Index');
ylabel('Miles Per Gallon (MPG)');
无波动数据的代码和结果
%% SVR TEST WITH EXPONENTIAL DATA
clear all
data=xlsread('test data.xlsx');
rng 'default' % For reproducibility
index=1:42;%
index=index';
X = [data(1:35,2),data(1:35,3)];
Y = data(1:35,[data(:,data(:,3)]);
%%
plot(data(:,1);
hold on
plot(index(35:end),YFit(35:end),2);
plot(index(1:35),YFit(1:35),15);
grid on;
grid minor;
xlabel('Index');
ylabel('exponential data');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。