使用 SVM 回归进行预测?
Prediction using SVM Regression?
我想使用支持向量机 (SVM) 进行预测。我使用 matlab 函数 fitrsvm
和 predict
,
编写了如下代码
tb = table(x,y)
Mdl = fitrsvm(tb,'y','KernelFunction','gaussian')
YFit = predict(Mdl,tb);
scatter(x,y);
hold on
plot(x,YFit,'r.')
我得到的输出 .
这里 blude 是测试值 (tb
),red 是使用 SVM 的预测。你可以清楚地看到这个预测是错误的。谁能告诉我任何方法来改进接近测量值的预测?
你应该使用 RBF 或 gaussian 等核函数。
SVM的默认Kernel是K(xi, xj) = xi*xj
而且是线性kernel.Of当然你只能得到一个线性回归结果
代码如
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.')
============================================= ==========================
至于结果的准确性,取决于Kernel的类型,惩罚系数的调整等等很多因素,通常需要多次调整参数。交叉验证可以帮助您找到一组好的参数
我想使用支持向量机 (SVM) 进行预测。我使用 matlab 函数 fitrsvm
和 predict
,
tb = table(x,y)
Mdl = fitrsvm(tb,'y','KernelFunction','gaussian')
YFit = predict(Mdl,tb);
scatter(x,y);
hold on
plot(x,YFit,'r.')
我得到的输出
这里 blude 是测试值 (tb
),red 是使用 SVM 的预测。你可以清楚地看到这个预测是错误的。谁能告诉我任何方法来改进接近测量值的预测?
你应该使用 RBF 或 gaussian 等核函数。
SVM的默认Kernel是K(xi, xj) = xi*xj
而且是线性kernel.Of当然你只能得到一个线性回归结果
代码如
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.')
============================================= ==========================
至于结果的准确性,取决于Kernel的类型,惩罚系数的调整等等很多因素,通常需要多次调整参数。交叉验证可以帮助您找到一组好的参数