使用SVM回归预测?

时间:2017-06-18 09:50:09

标签: matlab machine-learning svm

我想使用支持向量机(SVM)进行预测。我使用matlab函数fitrsvmpredict

编写了如下代码
tb = table(x,y)                                                  
Mdl = fitrsvm(tb,'y','KernelFunction','gaussian')                                                                          
YFit = predict(Mdl,tb);                                
scatter(x,y);                                                   
hold on                                                
plot(x,YFit,'r.')

我得到的输出here  这里包括测试值(tb),红色是使用SVM进行预测。你可以清楚地看到这种预测是错误的。谁能告诉我任何方法来改善接近测量值的预测?

1 个答案:

答案 0 :(得分:3)

你应该使用RBF或高斯等内核函数。 enter image description here

SVM的默认内核是K(xi,xj)= xi*xj,它是一个线性内核。当然,你只能获得线性回归结果。

代码

x = 0:0.01:5 ;
y = sin(x)+rand(1, length(x)) ;
x = x' ;
y = y' ;
tb = table(x,y) ;
Mdl = fitrsvm(tb,'y','KernelFunction','gaussian');
YFit = predict(Mdl,tb);                                
scatter(x,y);                                                   
hold on                                                
plot(x,YFit,'r.')

=============================================== ========================
  至于结果的准确性,它取决于许多因素,如核的类型,惩罚系数调整或其他,它通常需要时间来调整参数。交叉验证可以帮助您找到一组好的参数