2016-02-17 70 views
0

我有一個PU學習任務,我發現看起來像一個特殊的algorithim在本文中解決它:https://www.cs.uic.edu/~liub/publications/ICDM-03.pdf定製SVM優化LIBSVM

我希望實現的非標準製劑「偏置」 SVM如在部分5

使用兩個 參數C +和C-以不同的加權正誤差和負 錯誤描述。

我想我會使用一個現有的SVM求解器來解決這個問題,不僅可以加快腿部操作,而且由於我的特徵空間和樣本數量都非常大(因此我希望使用LIBLINEAR),因此可以確保最佳時間複雜度。

有什麼辦法可以像上面那樣指定自定義丟失函數嗎?

感謝您的幫助。

回答

2

LIBLINEAR'train'接受一個參數-wi weight:「權重調整不同類別的參數C」。它的實際使用(是否需要一個數組?)對我而言仍然不清楚,即使在閱讀README之後。 Sklearn的LinearSVC使用LIBLINEAR,並提供一個參數:

class_weight:{字典,「均衡」},可選 設置類的參數C i到class_weight [I] * C爲SVC。如果沒有給出,所有班級都應該有一個重量。的「平衡」的模式使用y的值來自動調節權重成反比類的頻率在輸入數據作爲N_SAMPLES次/(n_classes * np.bincount(Y))

哪個相當有用。