2016-07-24 125 views
2

當使用SKlearn和獲取具有二分類[1,0]的predict_proba(x)函數的概率時,函數返回分類落入每個類的概率。例子[.8,.34]。二元機器學習分類的置信概率

是否有社區採用標準方法將此降低爲單個分類信度,並將所有因素考慮在內?

項1) 只要採取在此實例中爲所預測的分類(0.8的概率)

選項2) 某些數學公式或函數調用哪個其考慮各種不同的概率和返回一個數字。這樣的信心方法可以考慮誰關閉不同類別的概率,並且如果不同類別之間沒有太多分離,則返回較低的置信度。

+2

在你的例子 - 不應該類概率總和爲1? –

回答

0

Theres沒有這樣做的標準。但是你可以做的是改變門檻。我的意思是,如果你使用predict而不是拋出一個二進制分類你的數據集,它的做法是以0.5作爲預測門檻。就像如果1中分類的概率> 0.5,則將其分類爲1和0,如果< = 0.5。但是在某些情況下,這可能會導致f1分數很差。

所以,方法應該是改變門檻,並選擇一個產生最大f1分數或任何其他你想用作評分函數的指標。 ROC(Receiver operating characteristic)曲線僅用於此目的。事實上,sklearn背後的動機僅僅是爲了給出這個類的概率,讓選擇最好的門檻。

一個很好的例子是預測患者是否患有癌症。所以你必須明智地選擇你的門檻,如果你選擇的很高,你可能會得到很多假陰性,或者如果你選擇的很低,你會得到很多假陽性。所以你只是根據你的需要選擇閾值(因爲它更好地獲得更多的誤報)。

希望它有幫助!

+0

如果這是一個多類問題怎麼辦?我們如何選擇threashold? – Sandeep

+0

@Sandeep你基本上繪製了多個ROC曲線。這可能會有所幫助 - http://stats.stackexchange.com/questions/2151/how-to-plot-roc-curves-in-multiclass-classification – hashcode55