我想使用scikit學習0.12.1到:訓練一個sklearn邏輯迴歸分類沒有所有可能的標籤
- 列車邏輯迴歸分類
- 評估舉行了驗證數據
- 飼料的分類器向這個分類器提供新數據,併爲每次觀察檢索5個最可能的標籤
除了一個特性外,Sklearn使這一切變得非常簡單。不能保證每個可能的標籤都會出現在用於符合我的分類器的數據中。有數百種可能的標籤,其中一些標籤沒有出現在可用的培訓數據中。
這將導致兩個問題:當它們發生在驗證數據
- 標籤矢量化不承認以前看不到的標籤。這很容易通過將標籤符合到可能的標籤集來解決,但它加重了問題2.
- LogisticRegression分類器的predict_proba方法的輸出是[n_samples,n_classes]數組,其中n_classes包含只有在培訓數據中看到的類。這意味着在predict_proba數組上運行argsort不再提供直接映射到標籤向量化程序的詞彙表的值。
我的問題是,什麼是迫使分類器識別全套可能的類,即使其中一些不存在於訓練數據中的最佳方式是什麼?很明顯,它無法學習它從未見過數據的標籤,但0在我的情況下是完全可用的。
更優雅比工作,我周圍使用。所有sklearn分類器中是否存在classes_屬性?在0.12.1 LogisticRegression中只有label_,但在更高版本中似乎會更改。 – 2013-02-23 16:09:15
@AlexanderMeasure:是的,'classes_'應該出現在所有的分類器上,但目前不是 - 這是一個已知的錯誤,每個類都有固定的基礎。 0.13在LR上有'classes_',我忘了0.12.1還沒有。 – 2013-02-23 17:19:04
糟糕,這不起作用。 clf.predict_proba返回形狀數組[n_samples,n_clf_classes]。數組迭代跨行,從而使用壓縮類的結果將類壓縮爲來自測試樣本的n_clf_classes長度概率數組,這不是特別有用。但是,如果我們將類壓縮到每行,它就可以工作。 – 2013-02-25 18:23:29