2017-08-01 30 views
1

我已經在python中使用sklearn訓練了rbf內核SVM,現在將它移植到java中進行生產。將使用rbf內核的sklearn SVC移植到java

當讀SVC documentation我整個決策函數來了:

enter image description here

這似乎表明,我必須知道每一個訓練樣本的權重,以評估SVC,但只有SVC自曝通過dual_coef_屬性支持向量的權重。

有沒有辦法解決這個問題?

回答

1

你不需要知道每個訓練樣本的權重。你只需要支持向量的權重。

其理由是,如果一個矢量x_i不是支持向量,然後alpha_i=0(參見第5頁here),因此y_i*alpha_i=0爲好。因此,您絕對不要在分類過程中使用這樣的x_i(一旦您安裝了svm)。

參數的其餘部分是通過SVM屬性訪問,如在documentation提到:

此參數可通過成員訪問dual_coef_其中 保持其保持 支持矢量的乘積y_i*alpha_isupport_vectors_intercept_,其中保留獨立條款rho