svmtrain在训练后返回单个浮动值而不是结构

时间:2013-12-04 12:21:07

标签: matlab machine-learning libsvm pattern-recognition

我在LINLAB中使用LIBSVM SVR进行预测。 svmtrain的输出应该是一个模型,在这种情况下应该是一个结构。但有时它只返回一个值。有人能告诉我这意味着什么。下面是一个这样的数据,它为我返回了一个输出值(7.586428304542136e-05)

Input X training instance matrix is
[0.416804048175116;0.725969684480469;0.727160324220360;0.566114850941063;0.718127490039841;0.646792141777717;0.642830974950772;0.748591839538398;0.639923066355269;0.368491551037230] and 
corresponding output Y training instance matrix is
[0.034441805225653;0.030878859857482;0.032066508313539;0.030878859857482;0.030878859857482;0.030878859857482;0.034441805225653;0.023752969121140;0.032066508313539;0.054631828978622]
SVM code:
model = svmtrain(Y,X,['-s 3 -t 2 -c 1 -p 0.001 -g 1 -v 5']);

c和g的值从2。^ [ - 6:6]变化。

1 个答案:

答案 0 :(得分:3)

来自libsvm / matlab自述文件:

  

如果指定了'-v'选项,则进行交叉验证并执行   返回的模型只是一个标量:交叉验证的准确性   回归的分类和均方误差。

这是我所知道的唯一一个libsvm应该从训练中返回标量的情况。

从你的帖子:

model = svmtrain(Y,X,['-s 3 -t 2 -c 1 -p 0.001 -g 1 -v 5']);

最后-v 5导致它进行交叉验证,然后模型是标量(mse),如上面的README中所述。