2013-10-29 55 views
0

我有(多類)訓練數據,其中的類是通過聚合手形標記的數據來學習的,因此某些行將具有[0,0,0, 0.4,0.6]。無論如何要直接將它用作分類器的訓練數據。我寧願不求助於學習5個迴歸模型,或者只是將這些數據設置爲[0,0,0,0,1]。兩者似乎都比直接學習更糟糕。至少我知道這應該可以用於邏輯迴歸,但是沒有api似乎支持它。 (另外我寧願使用比這更好的分類器。)是否有可能從類概率中學習分類器(在sklearn中)

+0

查看我對[這個問題] [1]的回答。 [1]:http://stackoverflow.com/questions/19221289/how-to-do-text-classification-with-label-probabilities/19224727#19224727 –

回答

1

這是一個依賴於模型的問題。特別是 - 如果您想要使用SVM進行此類任務,您需要K SVMa,其中K =標籤數量(因爲SVM是二元模型,而不是因爲您想使用概率)。一旦你做到了,你可以使用「樣本權重」來包含你所談論的這種知識。所以對於SVM,答案是,這是可能的,而且很容易做到。特別是scikit-learn可以實現每個樣本的權重。

它也可以自然的方式納入樸素貝葉斯。

在不同的模型中,它可能更復雜,例如你可以訓練神經網絡與期望輸出[0,0,0,0.4,0.6]而不是二進制向量,但這可能會導致過度擬合(因爲這樣做並不意味着「4類確實爲40%」,而是「試圖用這種方式建模,利用這個樣本你準確回答[0,0,0,0.4,0.6]」,所以如果有類似的樣本它有[0,0,0,1,1]它會嘗試區分它們,這同樣適用於任何多元迴歸方法

1

目前還沒有估算器支持這個。這是完全可能的,例如對於一個隨機森林或決策樹,這與學習一個迴歸模型沒有多大區別(不確定什麼是一個很好的分裂的cri儘管如此)。

我不認爲我們會在短時間內獲得一個API。不過,您可以修改隨機森林,最近鄰居或神經網絡(即將推出)來處理此設置。

通過一些工作,您可能也可以更改SGDClassifier,但是您說您不需要線性模型。你認爲什麼是「更好」的分類器?