作者|Alvira Swalin
編譯|VK
來源|Medium
本系列的第二部分主要討論分類度量

在第一篇中,我們討論了回歸中使用的一些重要指標、它們的優缺點以及用例,這一部分將集中討論分類中常用的度量,以及在具體的背景中應該選擇哪種,

定義
在討論每種方法的優缺點之前,我們先了解一下分類問題中使用的基本術語,如果你已經熟悉這個術語,可以跳過這個部分,

- 召回率或TPR(真正例率):所有正例中正確識別為正例的專案數=TP/(TP+FN)
- 特異性或TNR(真反例率):所有反例中正確識別為反例的專案數=TN/(TN+FP)
- 精確度:在確定為正例的專案中,正確確定為正例的專案數=TP/(TP+FP)
- 假正例率或I型錯誤:所有反例中被錯誤識別為正例的專案數=FP/(FP+TN)
- 假反例率或II型錯誤:所有正例中被錯誤識別為反例的專案數=FN/(FN+TP)

- 混淆矩陣

- F1度量:精確性和召回率的調和平均值,F1 = 2*Precision*Recall/(Precision + Recall)
- 準確率:正確分類的專案總數百分比 (TP+TN)/(N+P)
ROC-AUC評分
ROC-AUC得分的概率解釋是,如果隨機選擇一個正案例和一個負案例,根據分類器,正案例高于負案例的概率由AUC給出,

從數學上講,它是由靈敏度曲線(TPR)下的面積計算的,
FPR(1-特異性),理想情況下,我們希望具有高靈敏度和高特異度,但在實際情況下,敏感性和特異度之間始終存在權衡,
ROC-AUC的一些重要特征是
-
該值的范圍可以是0到1,然而,平衡資料的隨機分類器的auc得分是0.5
-
ROC-AUC評分與分類閾值集無關,F1分數不一樣,在概率輸出的情況下,F1分數需要一個閾值確定
Log損失
對數損失是一種精度測量,它結合了以下二進制類運算式給出的概率置信度的概念:

它考慮了你的預測的不確定性,基于它與實際標簽的差異,在最壞的情況下,假設你預測的概率都是0.5,因此,對數損失將變成-log(0.5)=0.69,
因此,我們可以說,考慮到實際的概率,任何高于0.6的都是一個非常糟糕的模型,
案例1
Log損失與ROC和F1度量的比較

以案例1為例,模型1在預測絕對概率方面做得更好,而模型2預測的概率值是有序遞增的,讓我們用實際分數來驗證一下:

如果考慮到log丟失,模型2給出的log損失最高,因為絕對概率與實際標簽有很大差異,但這與F1和AUC評分完全不一致,根據該評分模型2具有100%的精確率,
此外,你可以注意,對于不同的閾值,F1得分會變化,在默認閾值為0.5時,F1更喜歡模型1而不是模型2,
從上述示例得出的推論:
-
如果你關心絕對概率差,就用對數損失
-
如果你只關心某一個類的預測,而不想調整閾值,那么使用AUC score
-
F1分數對閾值敏感,在比較模型之前,你需要先調整它
案例2
他們如何處理類別不平衡的情況?

這兩個模型的唯一不同之處是它們對觀測13和14的預測,模型1在對觀測值13(標簽0)進行分類方面做得更好,而模型2在對觀測值14(標簽1)進行分類方面做得更好,
我們的目標是看哪個模型能更好地捕捉到不平衡類分類的差異(標簽1資料量少),在欺詐檢測/垃圾郵件檢測這樣的問題中,正例的標簽總是很少,我們希望我們的模型能夠正確地預測正例,因此我們有時會更喜歡那些能夠對這些正例進行正確分類的模型

顯然,在這種情況下,log損失是失敗的,因為根據log丟失,兩個模型的性能是相同的,這是因為log損失函式是對稱的,并且不區分類,
F1度量和ROC-AUC評分在選擇模型2方面均優于模型1,所以我們可以使用這兩種方法來處理類不平衡,但我們必須進一步挖掘,看看他們對待類別不平衡的方式有哪些不同,

在第一個例子中,我們看到很少有正標簽,在第二個例子中,幾乎沒有負標簽,讓我們看看F1度量和ROC-AUC如何區分這兩種情況,

ROC-AUC評分處理少數負標簽的情況與處理少數正標簽的情況相同,這里需要注意的一件有趣的事情是,F1的分數在模型3和模型4中幾乎是一樣的,因為正標簽的數量很大,它只關心正標簽的錯誤分類,
從以上例子得出的推論:
- 如果你關心的是一個數量較少的類,并且不需要管它是正是負的,那么選擇ROC-AUC分數,
你什么時候會選擇F1度量而不是ROC-AUC?
當你有一個數量小的正類,那么F1的得分更有意義,這是欺詐檢測中的常見問題,因為正標簽很少,我們可以通過下面的例子來理解這個陳述,
例如,在大小為10K的資料集中,模型(1)預測100個真正例資料中有5個正例資料,而另一個模型(2)預測100個真正例資料中的90個正例資料,顯然,在這種情況下,模型(2)比模型(1)做得更好,讓我們看看F1得分和ROC-AUC得分是否都能捕捉到這種差異
-
模型(1)的F1得分=2*(1)*(0.1)/1.1 = 0.095
-
模型(2)的F1得分= 2*(1)*(0.9)/1.9 = 0.947
是的,F1成績的差異反映了模型的表現,
-
模型(1)的ROC-AUC=0.5
-
模型(2)的ROC-AUC=0.93
ROC-AUC也給模型1打了一個不錯的分數,這并不是一個很好的性能指標,因此,對于不平衡的資料集,在選擇roc-auc時要小心,
你應該使用哪種度量來進行多重分類?
我們還有三種型別的非二分類:
- 多類:具有兩個以上類的分類任務,示例:將一組水果影像分為以下任一類別:蘋果、香蕉和桔子,
- 多標簽:將樣本分類為一組目標標簽,示例:將博客標記為一個或多個主題,如技術、宗教、政治等,標簽是獨立的,它們之間的關系并不重要,
- 層次結構:每個類別都可以與類似的類別組合在一起,從而創建元類,這些元類又可以再次組合,直到我們到達根級別(包含所有資料的集合),例子包括文本分類和物種分類,
在這個博客里,我們只討論第一類,

正如你在上表中看到的,我們有兩種型別的指標-微平均和宏平均,我們將討論每種指標的利弊,多個類最常用的度量是F1度量、平均精度、log損失,目前還沒有成熟的ROC-AUC多類評分,
多類的log損失定義為:

-
在微平均法中,將系統中不同集合的真正例、假正例和假反例進行匯總,然后應用它們得到統計資料,
-
在宏平均法中,取不同集合上系統的精度和召回率的平均值
如果存在類別不平衡問題,則采用微平均法,
參考:
- https://classeval.wordpress.com/simulation-analysis/roc-and-precision-recall-with-imbalanced-datasets/
- https://en.wikipedia.org/wiki/Precision_and_recall
- https://www.sciencedirect.com/science/article/pii/S0306457309000259
- https://stats.stackexchange.com/questions/11859/what-is-the-difference-between-multiclass-and-multilabel-problem
- https://datascience.stackexchange.com/questions/15989/micro-average-vs-macro-average-performance-in-a-multiclass-classification-settin/16001
原文鏈接:https://medium.com/usf-msds/choosing-the-right-metric-for-evaluating-machine-learning-models-part-2-86d5649a5428
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方檔案:
http://sklearn123.com/
歡迎關注磐創博客資源匯總站:
http://docs.panchuang.net/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/60997.html
標籤:其他
上一篇:預測酒店預訂需求
