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 に答える