天天看點

分類器性能名額:混淆矩陣、ROC曲線和AUC混淆矩陣ROC和AUC參考

分類任務最常用的性能評估名額:混淆矩陣、準确率、召回率、精确率、F1以及AUC、ROC。

混淆矩陣

在實際問題中,我們往往更關注模型對某一特定類别的預測能力,這時,準确性名額就變得籠統了。比如在診斷惡性良性腫瘤問題上,醫生更關心多少惡性惡性良性腫瘤被正确檢出【召回率Recall】,而求診人也害怕被錯誤檢出,遭受精神折磨【精确率Precision】;在信用卡欺詐檢測上,銀行更關注多少欺詐使用者被正确檢出【覆寫率Recall】。在二分類任務下,預測結果和正确結果之間存在4種不同組合,構成混淆矩陣。惡性惡性良性腫瘤為陽性(Positive),良性惡性良性腫瘤為陰性(Negative),那麼預測正确的惡性惡性良性腫瘤為真陽性(TP),預測正确的良性惡性良性腫瘤為真陰性(TN),原本是良性誤判為惡性的是假陽性(FP),原本是惡性但誤判為良性的是假陰性(FN)。最不願意看到的就是假陰性,因為這會耽誤治療,會給銀行造成壞賬損失。

評價名額

準确率 A c c u r a c y = # T P + # T N # T P + # T N + # F P + # F N Accuracy=\frac{\#TP+\#TN}{\#TP+\#TN+\#FP+\#FN} Accuracy=#TP+#TN+#FP+#FN#TP+#TN​

召回率 R e c a l l = # T P # T P + # F N Recall = \frac{\#TP}{\#TP+\#FN} Recall=#TP+#FN#TP​

精确率 P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP​

盡管有精确率和召回率名額,但它們并不能同時達到最優,需要妥協【trade-off】,達成最佳。

妥協方式是根據應用場景而有所側重,通過改變分類器的Threshold來實作最優。在需要高精确率場景【比如側重于患者不恐慌】,提高Threshold來提高準确率,但此時可能錯過有問題的患者,召回率降低;在需要高召回率場景【甯可錯不可放過】,減少Threshold來避免放過,但此時可能誤診,精确率低。

為了綜合考量召回率與精确率,F1名額:

F 1 = 2 1 P r e c i s i o n + 1 R e c a l l F1 = \frac{2}{\frac{1}{Precision}+\frac{1}{Recall}} F1=Precision1​+Recall1​2​

ROC和AUC

ROC曲線繪制不同Threshold下的真正例率和假正例率。曲線越接近左上方分類器性能越好。AUC【Area Under Curve】是以數值形式來描述模型的性能,便于比較多個分類器。AUC越大越好。

分類器性能名額:混淆矩陣、ROC曲線和AUC混淆矩陣ROC和AUC參考

真正例率(覆寫率) T P R = # T P # T P + # F N TPR=\frac{\#TP}{\#TP+\#FN} TPR=#TP+#FN#TP​

假正例率【陰性被誤診為陽性】 F P R = # F P # T N + # F P FPR=\frac{\#FP}{\#TN+\#FP} FPR=#TN+#FP#FP​

根據學習器的預測結果對樣例進行排序,按此順序逐個把樣本作為正例進行預測,每次計算出FPR和TPR,分别作為橫縱坐标,得到ROC曲線。利用ROC曲線,我們考量不同分類門檻值下分類器的泛化性能。

一個可視化的基于ROC選取模型的網頁→ROC可視化

由圖可知:

  1. 降低Threshold,會有更多的正例結果出現,TP與FP都會增加,TN和FN降低,此時假正例率升高,真正例率升高。
  2. 負例與正例的距離越遠,分類器的效果越好,ROC曲線越接近左上角,AUC越接近1.

參考

《Python機器學習及實踐從零開始通往Kaggle競賽之路》

《機器學習_ 學習筆記 (all in one)_V0.96》

繼續閱讀