算法性能度量


對學習器的泛化性能進行比較的時候, 不僅需要有效可行的實驗估計方法, 還要評估模型泛化能力的評價標准, 這就是性能度量(performance measure), 性能度量反映任務需求, 不同的性能度量往往導致不同的評判結果.

首先, 我們先來看看機器學習中常見的評價指標

回歸任務的常見性能指標是均方誤差(MSE, mean squared error)

\[E(f; D) = \frac{1}{m}\sum_i^m \left( f(x_i)-y_i\right)^2 \]

\(f(x_i)\) 為預測結果, \(y_i\) 為真實標簽, m 為樣本個數, 數據集 D

下面介紹分類任務中常見的性能度量

錯誤率和准確率

錯誤率即適用於二分類也適用於多分類, 定義為分類錯誤的樣本數占樣本總數的比例, 准確率(Accuracy)則是分類正確的樣本數占樣本總數的比例

\[\bf Error(f; D) = \frac{1}{m}\sum_i^m \mathbb I \left( f(x_i) \ne y_i \right) \]

\[\bf Accuracy(f; D) = \frac{1}{m}\sum_i^m \mathbb I \left( f(x_i)=y_i \right) \]

查准率(精度)和查全率

錯誤率和准確率雖然常用, 但並不能滿足所有的任務要求, 如信息檢索中, 我們關心 "檢索出的信息有多少是用戶感興趣的", "用戶感興趣的信息有多少被檢索出來了", 查准率(Precision)和查全率(Recall)更適合此類需求的性能度量.

對於二分類問題, 可以將樣例根據其真實類別和學習期的預測類別組合為如下四種情形

屏幕快照 2018-10-07 下午7.46.24-w348

術語 含義
True Positive 被模型預測為正的正樣本
True Negative 被模型預測為負的負樣本
False Negative 被模型預測為負的正樣本
False Positive 被模型預測為正的負樣本
True/False 表示學習器預測結果的正確與否
Positives/Negatives 表示學習器預測結果
樣本總數 TP + TN + FP + FN

在理解一個組合的含義時, 如: True Negative

  • 第一個關鍵字: True, 表明模型預測正確
  • 第二個關鍵字: Negative, 表示學習器將該樣例預測為負例

學習器預測正確且預測為負樣本, 即該樣本為被模型預測為負的負樣本

屏幕快照 2018-10-03 下午6.48.02-w326

Accuracy, 准確率反映了分類器統對整個樣本的判定能力——能將正的判定為正,負的判定為負

\[\bf Accuracy = \frac{TP + TN}{TP + TN + FP + FN} \]

Precision

查准率(Precision, 精度)是針對預測結果而言的,它表示的是預測為正的樣本中有多少是真正的正樣本。

\[\begin{align} \bf Precision = \frac{TP}{TP+FP} \tag{1}\\ \end{align} \]

Recall

召回率(Recall, 又稱為 TPR)是針對原來的樣本而言的,它表示的是樣本中的正例有多少被預測正確了。

\[\begin{align} \bf Recall = \frac{TP}{TP+FN} \tag{2} \end{align} \]

Precision 和 Recall 兩者的抽樣方式不同:

Recall 的抽樣是每次取同一標簽中的一個樣本, 如果預測正確就計一分
Precision 的抽樣是每次取你已預測為同一類別的一個樣本,如果預測正確就計一分。

這里一個關鍵點是: 召回率是從數據集的同一標簽的樣本抽樣, 而准確率是從已經預測為同一類別的樣本抽樣。Recall 和 Precision 都可以只針對一個類別。

True Positive Rate(真正率, 真陽性, TPR), 含義是檢測出來的真陽性樣本數占所有真實陽性樣本數的比例。

\[\begin{align*} \bf TPR = \frac{\text{被預測為正的正樣本結果數}}{\text{正樣本實際數}} = \frac{TP}{TP+FN} \end{align*} \]

False Positive Rate (假正率, 假陽性 FPR), 含義是檢測出來的假陽性樣本數除以所有真實陰性樣本數

\[\begin{align*} \bf FPR = \frac{\text{被預測為正的負樣本結果數}}{\text{負樣本總數}} = \frac{FP}{TN+FP} \end{align*} \]

可以看出真陽性和假陽性的計算分母包含整個樣本集 (TP+FN) + (TN+FP)

True Negative Rate(真負率 , TNR), 含義是檢測出來的真陰性樣本數占所有真陰性樣本數的比例。

\[\begin{align*} \bf TNR = \frac{\text{被預測為負的負樣本結果數}}{\text{負樣本總數}} = \frac{TN}{TN+FP} \end{align*} \]

False Negative Rate(假負率, FNR), 含義是檢測出來的假陰性樣本數占所有真陽性樣本數的比例。

\[\begin{align*} \bf FNR = \frac{\text{被預測為負的正樣本結果數}}{\text{正樣本總數}} = \frac{FN}{TN+FN} \end{align*} \]

屏幕快照 2018-10-03 下午6.48.55

查准率和查全率是一對矛盾的度量.
一般來說, 查准率高時, 查全率往往偏低, 而查全率高時, 查准率往往偏低.
例如, 如果希望將好瓜盡可能多的選出來, 則可以通過選瓜的數量來實現; 如果將所有西瓜都選上, 那么所有好瓜也必然被選上, 但是這樣查准率就會較低; 若希望選出的好瓜比例盡可能的高, 那么只挑選最有把握的瓜, 但是這樣難免會漏掉不少好瓜, 使得查全率低. 通常只有一些簡單的任務中, 才可能使得查全率和查准率都很高.

P-R 曲線

屏幕快照 2018-10-07 下午3.53.17-w430

很多情形下, 我們可以根據學習器的預測結果對樣例排序, 排在前面的是學習器認為"最可能"的正例的樣本, 排在后面的是學習器認為"最不可能"是正例的樣本. 按此順序逐個將樣本作為正例進行預測, 則每次計算當前的查准率和查全率.

以查准率為縱軸, 查全率為橫軸作圖, 就得到查准率-查全率曲線, 簡稱 "P-R曲線", 顯示該曲線的圖稱為 "P-R圖"

若一個 P-R 曲線被另一個 P-R 曲線 完全"包住"的話, 則后者的性能優於前者(面積越大, 性能越好吧).

ROC

ROC(receiver operating characteristic), 其顯示的是分類器的真正率和假正率之間的關系
AUC(area under ROC curve), 即 ROC 曲線下方的面積

屏幕快照 2018-10-07 下午8.19.17-w324

ROC與P-R關系

PR曲線和ROC曲線有什么聯系和不同?

相同點: 首先從定義上PR曲線的R值是等於ROC曲線中的TPR值, 都是用來評價分類器的性能的.
不同點: ROC曲線是單調的而PR曲線不是(根據它能更方便調參), 可以用AUC的值得大小來評價分類器的好壞(是否可以用PR曲線圍成面積大小來評價呢?), 正負樣本的分布失衡的時候,ROC曲線保持不變,而PR曲線會產生很大的變化。

-w312

(a) (b) 分別是正反例相等的時候的ROC曲線和PR曲線
(c) (d) 分別是十倍反例一倍正例的ROC曲線和PR曲線

可以看出,在正負失衡的情況下,從ROC曲線看分類器的表現仍然較好(圖c),然而從P-R曲線來看,分類器就表現的很差, 也就是說樣本不均衡時, 使用 P-R 曲線更能區分不同分類器的性能.

事實情況是分類器確實表現的不好,是ROC曲線欺騙了我們(分析過程見知乎 qian lv 的回答)。

F-Score

F1_Score 是一種統計量, 定義為 Precision 和 Recall 加權調和平均,是IR(信息檢索)領域的常用的一個評價標准,常用於評價分類模型的好壞. 由於 F-Score 綜合了 Presion 和 Recall 的結果, 所以當 F-Score 較高時則能說明試驗方法比較有效, 定義如下

\[{\displaystyle F_{1}=2 \cdot \left({\frac{1}{P}+\frac{1}{R}}\right)^{-1}=2\cdot {\frac {P \cdot R }{P +R }}} \]

在 F-Score 的通用定義如下,

\[\begin{align*} F_\beta &= (1 + \beta^2) \cdot \left( \frac{1}{P} + \frac{\beta^2}{R} \right)^{-1} \\ &= (1 + \beta^2) \cdot \frac{P \cdot R}{(\beta^2 \cdot P) + R} \end{align*} \]

使用 \(β^2\), 只是為了說明 Precision 上的因子大於 0, 當 \(β^2 > 1\)時, 查全率有更大的影響, 當\(β^2 < 1\)時, 查准率有更大的影響

將式(1)和式(2)代入上式

\[{\displaystyle F_{\beta }={\frac {(1+\beta ^{2})\cdot TP }{(1+\beta ^{2})\cdot TP +\beta ^{2}\cdot FN +FP }}\,} \]

mean average precision

目標檢測中衡量識別精度的指標是mAP(mean average precision)。多個類別物體檢測中,每一個類別都可以根據recall和precision繪制一條曲線,AP就是該曲線下的面積,mAP是多個類別AP的平均值.

如何計算某一個類別的 AP? 也就是如何畫 P-R 曲線, 就目標檢測而言, 可能大家困惑的點在於 TP, FP 如何計算, 下面以貓咪這一類為例說明, 在所有預測為貓咪類的框中, 具有怎么樣的特征的框才是 TP 和 FP 呢?

計算流程

  1. 貓咪類別的 Prediction 下,對於某一確定 score threshold, 將 Prediction 按照 score 排序, score 大於 score threshold 的 Prediction 的定義為 Positive Prediction
  2. 貓咪類別的Positive Prediction下,對於某一確定 IOU threshold, 與貓咪類別的GT的 IOU 大於 threshold 的 Prediction 標記為 True Positive(TP), 與貓咪類別的GT的 IOU 小於 threshold 的 Prediction 標記為 False Positive(FP)

mAP 實現以及分析

  1. Object-Detection-Metrics
  2. 目標檢測模型的評估指標mAP詳解(附代碼)
  3. VOC mAP
  4. cocodataset/cocoapi


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM