2014-03-05 37 views
0

對於我想要做的事情的快速回顧,我想確定文本是否由同一作者編寫。因此我使用一類分類。
以我訓練集(18個樣品),它看起來像這樣(爲了簡化,我用x作爲數據值):使用libsvm進行一個類的分類

1 1:x 2:x "until" 200:x 
1 1:x 2:x "until" 200:x 

在我的測試集(3個樣品),它看起來像這樣(爲簡化中,我使用ÿ作爲數據值):

1 1:y 2:y "until" 200:y 

對於數據準備(訓練和測試組),I設置上限和下限的規模限制到+ 1/-1

-l -1 -u 1 

對於訓練,我ü se svm_type是一個類svm,內核類型是Sigmoid。然而準確性是0%

optimization finished, #iter = 13 
obj = 22.901769047004553, rho = 5.476401914859387 
nSV = 11, nBSV = 6 
Accuracy = 0.0% (0/21) (classification) 

有人可以告訴我我在這裏做錯了什麼嗎?

回答

1

您需要調整參數。

nu是訓練誤差的分數的上限和支持向量的分數的下限。通過這樣的設置,基本上數據的數量nu(例如0.01意味着1%)可以被拒絕並標記爲異常值。

還嘗試調整Sigmoid內核中的gammacoef0值。

儘管它可能不是導致您的零訓練準確性的直接因素,但我建議您自己縮放數據而不是libsvm的最大/最小縮放比例,請檢查standard scaling

x_mean = mean(x); 
x_std = std(x); 
x = (x - x_mean)./x_std; 

然後使用相同的x_meanx_std價值,擴展您的測試數據。

+0

謝謝,我會試試! – Xitrum