機器學習(深度學習)中的metrics

本文以二分類問題作討論,多分類可以類推。

混淆矩陣

  1. 真陽性(True Positive,TP):樣本的真實類別是正例,並且模型預測的結果也是正例
  2. 真陰性(True Negative,TN):樣本的真實類別是負例,並且模型將其預測成爲負例
  3. 假陽性(False Positive,FP):樣本的真實類別是負例,但是模型將其預測成爲正例
  4. 假陰性(False Negative,FN):樣本的真實類別是正例,但是模型將其預測成爲負例

總結爲下表(以預測來看,預測對了相應的P或N前面就是T,否則爲N,方便記憶):

準確率 Accuracy

所有樣本中被預測正確的樣本的比率,分類模型總體判斷的準確率(包括了所有class的總體準確率)

精確率 Precision

預測爲正類的準確率

TP/(TP+FP)TP / ( TP + FP )

召回率 Recall

真實爲正類的準確率

真實爲負類的準確率

Recall=TN/(TN+FP)Recall = TN/(TN+FP)

F1

用來衡量二分類模型精確度的一種指標。它同時兼顧了分類模型的準確率和召回率。F1分數可以看作是模型準確率和召回率的一種加權平均,它的最大值是1,最小值是0。

Roc曲線、AUC

Roc (Receiver operating characteristic) 曲線是一種二元分類模型分類效果的分析工具。首先需要知道如下定義:
Roc 空間將假陽性率(FPR)定義爲 X 軸,真陽性率(TPR)定義爲 Y 軸。

  1. FPR: 在所有實際爲陰性的樣本中,被錯誤地判定爲陽性之比率 FPR = FP/N = FP/(FP + TN)
  2. TPR: 在所有實際爲陽性的樣本中,被正確地判斷爲陽性之比率 TPR = TP/P = TP/(TP+FN)

給定一個二元分類模型和它的閾值,就能從所有樣本的(陽性/陰性)真實值和預測值計算出一個 (X=FPR, Y=TPR)座標點。

從 (0, 0) 到 (1,1) 的對角線將ROC空間劃分爲左上/右下兩個區域,在這條線的以上的點代表了一個好的分類結果(勝過隨機分類),而在這條線以下的點代表了差的分類結果(劣於隨機分類)。

完美的預測是一個在左上角的點,在ROC空間座標 (0,1)點,X=0 代表着沒有僞陽性,Y=1 代表着沒有僞陰性(所有的陽性都是真陽性);也就是說,不管分類器輸出結果是陽性或陰性,都是100%正確。一個隨機的預測會得到位於從 (0, 0) 到 (1, 1) 對角線(也叫無識別率線)上的一個點。
對於一個特定的分類器和測試數據集,顯然只能得到一個分類結果,即一組FPR和TPR結果,而要得到一個曲線,我們實際上需要一系列FPR和TPR的值,這又是如何得到的呢?見如何畫ROC曲線

AUC 最普遍的定義是 ROC 曲線下的面積,顯然這個面積的數值不會大於1。但其實另一種定義更常用,分別隨機從正負樣本集中抽取一個正樣本,一個負樣本,正樣本的預測值大於負樣本的概率。後一個定義可以從前一個定義推導出來,有興趣的可以看下 Wilcoxon-Mann-Witney Test。

AUC得含義

The AUC value is equivalent to the probability that a randomly chosen positive example is ranked higher than a randomly chosen negative example.

從AUC判斷分類器(預測模型)優劣的標準:

  • AUC = 1,是完美分類器,採用這個預測模型時,存在至少一個閾值能得出完美預測。絕大多數預測的場合,不存在完美分類器。
  • 0.5 < AUC < 1,優於隨機猜測。這個分類器(模型)妥善設定閾值的話,能有預測價值。
  • AUC = 0.5,跟隨機猜測一樣(例:丟銅板),模型沒有預測價值。
  • AUC < 0.5,比隨機猜測還差;但只要總是反預測而行,就優於隨機猜測。

既然已經這麼多評價標準,爲什麼還要使用ROC和AUC呢?因爲ROC曲線有個很好的特性:當測試集中的正負樣本的分佈變化的時候,ROC曲線能夠保持不變。在實際的數據集中經常會出現類不平衡(class imbalance)現象,即負樣本比正樣本多很多(或者相反),而且測試數據中的正負樣本的分佈也可能隨着時間變化。

推薦閱讀:
機器學習之分類性能度量指標 : ROC曲線、AUC值、正確率、召回率
ROC與AUC的定義與使用詳解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章