1
我已經在python中使用sklearn訓練了rbf內核SVM,現在將它移植到java中進行生產。將使用rbf內核的sklearn SVC移植到java
當讀SVC documentation我整個決策函數來了:
這似乎表明,我必須知道每一個訓練樣本的權重,以評估SVC,但只有SVC自曝通過dual_coef_
屬性支持向量的權重。
有沒有辦法解決這個問題?
我已經在python中使用sklearn訓練了rbf內核SVM,現在將它移植到java中進行生產。將使用rbf內核的sklearn SVC移植到java
當讀SVC documentation我整個決策函數來了:
這似乎表明,我必須知道每一個訓練樣本的權重,以評估SVC,但只有SVC自曝通過dual_coef_
屬性支持向量的權重。
有沒有辦法解決這個問題?
你不需要知道每個訓練樣本的權重。你只需要支持向量的權重。
其理由是,如果一個矢量x_i
不是支持向量,然後alpha_i=0
(參見第5頁here),因此y_i*alpha_i=0
爲好。因此,您絕對不要在分類過程中使用這樣的x_i
(一旦您安裝了svm)。
參數的其餘部分是通過SVM屬性訪問,如在documentation提到:
此參數可通過成員訪問
dual_coef_
其中 保持其保持 支持矢量的乘積y_i*alpha_i
,support_vectors_
,intercept_
,其中保留獨立條款rho
。