基於綜述Survey on deep learning with class imbalance,以及網上找到的一些博客,總結一下NLP任務中的常用性能指標,主要以分類任務為准。
目錄
混淆矩陣
對於二分類問題,標簽和模型的預測結果經過組合有四種情況,將四種情況列在一個矩陣中就是混淆矩陣。
對於多分類問題,標簽和模型的預測結果經過組合有n2種,情況,將其列在一個矩陣中就是混淆矩陣。以下主要以二分類的混淆矩陣為例。
FP對應第一型錯誤:標簽是負類,但是預測為正類,可能是噪音或是故意的擾動干擾了模型
FN對應第二型錯誤:標簽是正類,但是預測為負類,可能是模型學到的特征不足
准確率(Accuracy)和錯誤率(Error Rate)
正確率和錯誤率是在評估分類結果的時候最常用的指標。但是當處理類不平衡問題時這兩個指標都是不充分的,因為實驗結果由數據多的類所決定,也就是負類。當數據集中正類所占的比例只有1%時,一個把所有數據歸為負類的分類器可以到達99%的准確率。當然,這樣一個模型是沒有實際價值的。
正確率(Precision)、召回率(Recall)、選擇率(Selectivity)
- 正確率Precision衡量在標記為正類的樣本中確實是正類的比例。正確率對於類不平衡數據敏感因為它考慮到了負樣本中被不正確地標為正類的數量(FP)。但是只用正確率一個指標是不充分的,因為它完全沒有考慮正樣本中被不正確地標為負類的數量(FN)。
- 召回率Recall也叫做TPR(Ture Positive Rate),用於衡量正類樣本中被模型正確標記為正類的比例。召回率不會受不平衡影響因為它只取決於正類。召回率沒有考慮到負樣本中被標記為正樣本的數量,這在處理有許多負樣本的類不平衡數據時會出現問題。
正確率和召回率之間是一個權衡,性能指標的重要性隨着問題不同而變化。正確率以模型標記的正類為底,召回率以實際標簽標記的正類為底。
- 選擇率(Selectivity)也叫做TNR(True Negative Rate),衡量負類樣本中被模型正確標記為負類的比例。相當於負類的召回率。
F1值(F-Measure)、G-Mean、Balanced Accuracy
- F-Measure,也叫做F1值,用調和平均數結合了正確率和召回率,系數β用於調整正確率和召回率的相對重要性。β一般取1。
- G-Mean,用平方根結合了TPR和TNR來衡量性能。
- Balanced Accuracy也結合TPR和TNR來計算指標以使得模型對於數據少的類更加敏感。
ROC、AUC、PR曲線
ROC
ROC(receiver operating characteristics)曲線,它繪制了TPR(召回率)和FPR(False positive rate,FPR=FP/(FP+TN))之間的關系,每個點的橫坐標是FPR,縱坐標是TPR,從而創建了一個描繪被正確分類的正樣本(TP)和被錯誤分類的負樣本(FP)之間的權衡的可視化圖像。
對於二值分類問題,實例的值往往是連續值,我們通過設定一個閾值,將實例分類到正類或者負類(比如大於閾值划分為正類)。因此我們可以改變閾值,根據不同的閾值進行分類,根據分類結果計算得到ROC空間中相應的點,連接這些點就形成ROC curve。 因此對於產生連續概率的模型,閾值可用於在ROC空間創建一系列的點來形成ROC曲線。
AUC
AUC(the area under the ROC curve)常用來比較模型之間的性能。AUC的值就是ROC曲線下方的那部分面積的大小,通常AUC的值介於0.5到1.0之間,較大的AUC代表了較好的性能。 加權的AUC指標,用於在計算面積的時候將成本偏好加入到考慮中。
PR曲線
PR曲線(Precision-Recall),ROC曲線可能會在高度偏斜的數據集上顯示過於樂觀的結果,在這種情況下,應該用Precision-Recall(PR)曲線來代替ROC曲線。P指的是正確率,R指的是召回率,一般情況下把召回率設為橫坐標,正確率設為縱坐標。
通過選擇不同的閾值進行不同的計算,一條模型對應多個閾值得到一條曲線。性能通過曲線下方的面積大小進行比較,更常用的是平衡點F1,平衡點是P=R時的取值。剛好就是β為1時的F1值。
微觀與宏觀指標
在n個二分類混淆矩陣上綜合考慮正確率和召回率
宏macro-F1:在各混淆矩陣上分別計算正確率和召回率,再計算平均值
微micro-F1:先將各混淆矩陣的對應元素取平均,再基於這些平均值計算F1值。
參考文獻和博客
綜述:Survey on deep learning with class imbalance
博客: