0

我是 LibSVM 的新手,我想根据由 3 个变量形成的一组训练值来预测某些值。这是一个训练数据的例子(测试类似):

1 2 3 232  
3 4 5 23  
6 7 8 126  
9 10 11 57  
...  

我以下列方式使用 LibSVM:

 param.s=3  
 param.C=max(train_data.y)-min(train_data.x)  
 param.t=2  
 param.g=2^-13  
 param.p=2^17
 param.libsvm=['-s',param.s,'-t',param.t,'-c',param.C,'-g',param.g,'-p',param.p]  
 model=svmtrain[train_data.y,train_data.x,param.libsvm]

train_data.y 是 1000x1 的向量,而 train_data.x 是 1000x3 的矩阵。问题是“模型”是空的,然后我有预测部分:

[y_hat,accuracy,projection]=svmpredict(test_data.y,test_data.x,model);

其中 test_data.y 是 3998x1 向量,而 test_data.x 是 3998x3 矩阵。谢谢您的帮助。

4

1 回答 1

0

问题出在这条线上:

param.libsvm=['-s',param.s,'-t',param.t,'-c',param.C,'-g',param.g,'-p',param.p]  

您不能将字符串与这样的数字连接,并且选项需要空格。它应该是

param.libsvm=[' -s ',num2str(param.s),' -t ',num2str(param.t),' -c ',num2str(param.C),' -g ',num2str(param.g),' -p ',num2str(param.p)]
于 2013-09-01T09:08:40.553 回答