2013-03-20 53 views
1

我有一個問題,我解決了,但我想知道我是否正確。Scikits-learn svm SVC簡單問題

關於scikit關於SVM SVC的學習文檔,有一個例子是通過在類中使用權重來管理不平衡數據。

便將所在班重量svm.SVC(被告知)的示例

wclf = svm.SVC(kernel='linear', class_weight={1: 10}) 

但如果再現源代碼此命令,我得到以下錯誤:

wclf = svm.SVC(kernel='linear', class_weight={1: 10}) 
    TypeError: __init__() got an unexpected keyword argument 'class_weight' 

但是,如果將fit_函數上的classes_weight放在fit()函數上,問題就解決了:

wclf.fit(X, y, class_weight={1: 10}) 

am I r ight關於這個?有沒有人有過這個問題?

+0

您正在使用哪個版本的sklearn? – 2013-03-20 22:44:34

+0

我的版本是0.10.0-1build1 – mad 2013-03-20 22:57:26

+0

我建議嘗試當前版本0.13.1。您在文檔中提到的示例很可能基於較新的版本,並且功能簽名可能已更改。 – 2013-03-22 02:04:32

回答

2

關鍵字'class_weight'尚未在您的SVC的sklearn版本中實現,但它用於SVC.fit()。 sklearn有時會比你想象的更新它們的功能,並且你正在閱讀的文檔可能是/ dev /或/ stable /而不是你的版本。