2012-04-12 31 views

回答

19

這就是我如何做到的here。如果我沒有記錯,這是基於SVM優化的dual form如何解決。

model = svmtrain(...); 
w = (model.sv_coef' * full(model.SVs)); 

和偏置是(我真的不記得爲什麼它的負):

bias = -model.rho; 

然後做分類(線性SVM),用於在N-通過-M具有N個實例和M個特徵的數據集'特徵',

predictions = sign(features * w' + bias); 

如果內核不是線性的,那麼這不會給你正確的答案。

欲瞭解更多信息,請參閱libsvm手冊中的How could I generate the primal variable w of linear SVM?

+0

我該如何使用它們來進行手動分類?我正在談論2類案例。 – Trup 2012-04-13 14:33:03

+0

我已經編輯了我的問題來解釋,雖然這樣做沒有任何意義......它將返回與'[guess,acc,probs] = svmpredict(...)中的'probs'完全相同的結果。 );'。 – Richante 2012-04-13 15:47:22

+0

不,它並沒有真正返回相同的結果,它只返回-1s。我知道它沒有意義,但我想確保它是正確的,然後我將在單獨的應用程序中簡單地使用權重來「手動」進行分類,而無需明確執行任何SVM內容。非常感謝,這真是我項目中的一個瓶頸。你可以仔細檢查一下,看看錯誤在哪裏? – Trup 2012-04-13 15:50:13