一文詳解機器學習的判別指標(精準率,召回率)

ZhiboZhao發表於2021-06-30

其實大部分的評價指標比如誤識率,拒識率等都是根據TP,FP,FN,TN計算出來的,為了方便起見,把他們的關係表示為下表:

為了更好地理解,我把正負樣本記做好人和壞人,那麼:

  1. TP表示預測為正類的樣本中實際也為正樣本的個數(本來是好人,預測也是好人)
  2. FP表示預測為正類的樣本中實際為負樣本的個數(把壞人當成了好人)
  3. FN表示預測為負類的樣本中實際為正樣本的個數(把好人當成了壞人)
  4. TN表示預測為負類的樣本中實際也為負樣本的個數(本來是壞人,預測也是壞人)

那麼我們可以得到兩個全域性的評價指標:

\[ACC = (TP+TN)/(TP+TN+FP+FN) \\ ERR = (FP+FN)/(TP+TN+FP+FN) \]

由於在不同的任務中,對指標的側重點不一樣,所以僅使用全域性的評價指標並不能完全代表考慮優先順序。比如在抓小偷時,沒有百分百把握不能輕易動手,因此就要FP儘可能的小。然而在疾病篩查過程中,即使有很小的概率,也不能忽略,因此FN也要儘可能小。所以在不同場景下判斷指標出現了偏向,所以又多出兩個衍生的評價指標用來適應不同場景的需求:

\[TAR = TP/(TP+FN) \\ FAR = FP/(FP+TN) \]

其中,\(TAR\) 表示預測的正類樣本佔總的正類樣本的比例,也叫 \(TPR\) ,查全率,召回率;\(FAR\) 表示把壞人當成好人的樣本佔總壞人的比例,也叫誤識率,\(FRR\)\(FMR\) 等。

值得注意的是,\(TAR\)\(FAR\) 兩者之間沒有明確的定量關係,通過 \(ROC\)\(DET\) 等曲線來描述。與其他曲線不同的是,\(ROC\)\(DET\) 曲線的橫縱座標之間並不是因變數與自變數的關係,他們都是閾值 threshold 的因變數。要想理解這個事情,首先要明白threshold是什麼。

以聲紋識別為例,將 \(M\) 個待檢測的聲紋資訊與 \(N\) 個聲紋庫的聲紋資訊分別編碼後進行匹配,計算餘弦相似度,我們肯定希望相同的聲源之間的相似度更高,而不同的聲源之間的相似度很低。那麼這個相似度就可以理解為threshold。比如:設定的閾值為0,那麼所有相似度大於0的都可以看成是相同的聲源,所以 \(TP\)\(FP\) 都接近1;同理,設定的閾值為1,那麼所有相似度大於1的都可以看成是相同的聲源,所以 \(TP\) 和 $ FP$ 都接近0. 當閾值變大時:

  1. \(TP\) 減少:因為要求變高了,容易把好人當成壞人(遊走在道德邊緣的這些)
  2. \(FN\) 增加:因為要求變高了,所以好人被當成壞人的概率變大了
  3. \(TN\) 增加:因為要求變高了,能篩除更多冒充好人的人
  4. \(FP\) 減少:因為要求變高了,預測錯的概率就變低了,把壞人當做好人的概率變少了

所以 \(TAR\)\(FAR\) 同向變動。根據這個原理以threshold為自變數,將 \(FAR\)\(TAR\) 作為橫縱座標,繪製出了 \(ROC\) 曲線。\(ROC\)曲線中,橫軸代表 \(FAR\),縱軸代表 \(TAR\)\(ROC\) 曲線下方的面積代表一個判別器的優劣,面積越大,判別器越好反之越差。\(ROC\) 曲線是下圖中的虛線時,相當於判別器沒有效果,因為在虛線上的任何點,無論在任何threshold下,\(FAR\)\(TAR\) 都是相同的,也就是說猜對與猜錯各一半,模型沒有預測價值。在 \(ROC\) 曲線上,等錯誤率(ERR)是 \(FAR\)\(TAR\) 的一個平衡點,等錯誤率的值越低,表示演算法的效能越好。

除了 \(FAR\)\(TAR\) 外,還有一些其他衍生出來的判別指標,比如:

  1. \(FRR=1-TAR\):這個沒什麼好說的,TAR的逆版本,主要用來繪製DET曲線
  2. \(PRE=TP/(TP+FP)\):這個也叫精確率,表示預測正確的正樣本在預測為正類的樣本中佔的比例。

因為 \(FAR\)\(TAR\) 的變化同向,所以通過 \(FAR\)\(FRR\) 來繪製 \(DET\) 曲線,能夠看出此消彼長的關係:

\(ERR\) 就是 \(y=x\)\(DET\) 曲線的交點處。與 \(ROC\) 曲線中的描述一致。因為在 \(ROC\) 中,\(ERR\) 就是 \(FAR+TAR=1\) 的交點處。而在 \(DET\) 中,\(ERR\) 同樣是 \(FAR=FRR\) 處,因此 \(FAR=1-TAR\) 。習慣上,\(FAR\)\(FRR\) 的關係也可以表示為下圖所示。

相關文章