在MATLAB中使用libsvm做回归预测

看到大家都说分类和回归是一样的,会分类就会回归。但是可能是我太笨了吧,弄了一天各种查资料,还是不知道该咋弄,终于初步的实现回归的例子,写一下吧,不然怕忘了。

一个经典的回归的例子是这样的:

tic;
close all;
clear;
clc;
format compact;
%%


% 生成待回归的数据
x = (-1:0.1:1)';
y = -x.^2;


% 建模回归模型
model = svmtrain(y,x,'-s 3 -t 2 -c 2.2 -g 2.8 -p 0.01');


% 利用建立的模型看其在训练集合上的回归效果
[py,mse,devalue] = svmpredict(y,x,model);
figure;
plot(x,y,'o');
hold on;
plot(x,py,'r*');
legend('原始数据','回归数据');
grid on;


% 进行预测
testx = [1.1,1.2,1.3]';
display('真实数据')
testy = -testx.^2


[ptesty,tmse,detesvalue] = svmpredict(testy,testx,model);
display('预测数据');
ptesty


%%
toc


许多博客中都是用的这个例子,但是要注意的一点是:[ptesty,tmse,detesvalue] = svmpredict(testy,testx,model);预测这句代码中,输出一定的是3个变量,目前我也不知道为什么要这样,但是写上三个变量就能正确运行!!

你可能感兴趣的:(在MATLAB中使用libsvm做回归预测)