概述
AUC(Area Under roc Curve)是一種用來度量分類模型好壞的一個標準,對于現實中常見的樣本類別分布不平衡的問題,相較Accuracy更能反應分類器性能。
二分類問題在機器學習中是一個很常見的問題,經常會用到。ROC (Receiver Operating Characteristic) 曲線和 AUC (Area Under the Curve) 值常被用來評價一個二值分類器 (binary classifier) 的優劣。
ROC曲線
ROC全名接收者操作特征(Receiver Operating Characteristic),表示為一個畫在二維平面上的曲線,曲線上每個點反應這對統一信號刺激的感受性。對特定的分類器,可以根據其在測試樣本上的表現得到一個TPR和FPR點對,分類器就可以映射成ROC平面上的一個點。調整這個分類器分類時候使用的閾值,得到一個經過(0, 0)
,(1, 1)
的曲線,即該分類器的ROC曲線。一般情況下,這個曲線都應該處于(0, 0)
和(1, 1)
連線的上方。因為(0, 0)
和(1, 1)
連線形成的ROC曲線實際上代表的是一個隨機分類器。
對于二分類問題, 實例分成正類(postive)或者負類(negative)。實際中分類時,會出現四種情況:
- 真正類(True Postive, TP),實例為正類,預測為正類
- 假負類(False Negative FN),實例為正類,預測為負類
- 假正類(False Postive FP),實例為負類,預測為正類
- 真負類(True Negative TN),實例為負類,預測為負類
其中正類、負類、真、假的含義如下:
- 預測類別為1的為
正類
,預測類別為0的為負類
- 預測正確為
真
,預測錯誤為假
將上述概念組合,產生如下混淆矩陣:
由上表可得出橫,縱軸的計算公式:
- 精確率(Precision):
TP/(TP+FP)
,分類器預測的正類中實際正實例的占比。 - 真正類率(True Postive Rate,TPR):
TP/(TP+FN)
,分類器預測的正類中實際正實例占所有正實例的比例。也稱為Sensitivity或Recall - 假正類率(False Postive Rate,FPR):
FP/(FP+TN)
,分類器預測的正類中實際負實例占所有負實例的比例。也表示為1-Specificity - 真負類率(True Negative Rate,TNR):
TN/(FP+TN)
,且TNR=1-FPR
,分類器預測的負類中實際負實例占所有負實例的比例。也稱為Specificity
[圖片上傳中...(image.png-eb6e2a-1615974401817-0)]
橫軸:FPR, 所有真實類別為1的樣本中,預測類別為1的比例。
縱軸:TPR,所有真實類別為0的樣本中,預測類別為1的比例。
二者相等時,即y=x:
含義:不論真實類別是1還是0的樣本,分類器預測為1的概率是相等的,分類器對于正例和負例毫無區分能力,和拋硬幣沒什么區別。
我們期望分類器:
TPR盡可能大,真正類實例相對實際類別為1的實例的比例盡量高
FPR盡可能小,假正類實例相對實際類別為0的實例的比例盡量低
舉個栗子,對于硬分類器(例如SVM,NB),預測類別為離散標簽,對于8個樣本的預測情況如下:
得到混淆矩陣:
算得TPRate=3/4,FPRate=2/4,得到ROC曲線:
AUC值
定義
AUC (Area Under Curve) 為ROC曲線下的面積,顯然該面積數值小于等于1。又由于ROC曲線一般都處于y=x
這條直線的上方,所以AUC的取值范圍一般為[0.5, 1]
。AUC值相較ROC曲線更能清晰的顯示分類器的優劣,AUC值越大分類器效果越好。
值的含義
AUC = 1:完美分類器,采用這個預測模型時,不管設定什么閾值都能得出正確結果。絕大多數預測的場合,不存在完美分類器。
0.5 < AUC < 1:優于隨機猜測。這個分類器(模型)妥善設定閾值的話,能有預測價值。
AUC = 0.5:跟隨機猜測一樣(例:丟銅板),模型沒有預測價值。
AUC < 0.5:比隨機猜測還差;但只要總是反預測而行,就優于隨機猜測。
Reference
ROC曲線與AUC值
機器學習之分類性能度量指標 : ROC曲線、AUC值、正確率、召回率
機器學習之分類器性能指標之ROC曲線、AUC值
如何理解機器學習和統計中的AUC?