機器學習中,分類問題的評估指標

Qi Fong
Apr 7, 2021

1. ROC Curve, AUC, PR Curve and F1-Score

1.1 Introduction

在處理分類問題時,最後的輸出往往是樣本被歸在某類的”機率”,最後將樣本歸類於機率最大值的類別。

但統計有一句很有名的格言

All models are wrong, but some are useful.

也就是很難找到一個完美的模型能夠為樣本完美分類,畢竟樣本本身就會有變異數。

那麼如何對一個模型”評分”呢?又或者有甚麼指標可以參考?

底下介紹常見的評估方法。

2. ROC Curve

ROC的全名叫做Receiver Operating Characteristic,是以偽陽性率(FPR)為橫軸,真陽性率(TPR)為縱軸所繪製的曲線, 曲線上的點代表不同閾值(threshold)下,該模型FPR和TPR的對應關係,底下介紹觀念及算法。

2.1 混淆矩陣(Confusion Matrix):

2.2 真陽性率(TPR),召回率(Recall),敏感度(Sensitivity):

意思:在所有正樣本中,有多少比例預測正確。

2.3 偽陽性率(FPR):

意思:在所有負樣本中,有多少比例被預測為正,也等於1-特異度(Sensitivity)

Remark:特異度(Sensitivity)的意思為,在所有負樣本中,預測正確的比例。

2.4 ROC and AUC

ROC:將各個Threshold情況下的FPR和TPR對應關係描繪出來。

AUC:全名叫做Area Under the Curve(AUC),就是ROC曲線下的面積,下圖為0.79。

圖片來源:https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html#sphx-glr-auto-examples-model-selection-plot-roc-p

2.5 討論:

由圖可發現,當TPR越大,那麼FPT也會越大,這是因為當你”放寬”了Threshold時,雖然會讓正樣本預測正確的比例增加,但錯把負樣本分類成正(Positive)的機會也同時增加了。

3. PR Curve

以準確率(Precision)縱軸,召回率(Recall)為橫軸,所繪製的曲線圖。

3.1 準確率(Precision)

意思:在預測為正的樣本中,確實為正樣本的比例。

3.2 Precision- Recall Curve

圖片來源:https://scikit-learn.org/stable/auto_examples/model_selection/plot_precision_recall.html#sphx-glr-auto-examples-model-selection-plot-precision-recall-py

Average Precision(AP):

不同threshold下,Recall差異比上Precision的平均

圖片來源:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.average_precision_score.html#sklearn.metrics.average_precision_score

3.3 討論:

Precision vs. Recall

Precision探討的範圍是在預測為正樣本的情況下,有多少比例為真的正樣本。

而Recall探討的是範圍是在真實為正樣本的情況下,有多少比例預測正確。

所以根據不同目標要關注的指標就會不同。

一般情況下,調高threshold能提高Precision,但Recall會降低。

3.4 使用場景

在資料不平衡的情況下,例如疫苗的正確率,通常使用ROC,因為ROC會將正樣本和負樣本分開討論,所以比較可以克服正負樣本不平衡的問題。

在資料平衡的情況下,PR更專注於那些預測為正樣本的分類正確率,比方說信用卡詐欺檢測。

4. F1-Score

將Precision和Recall做調和平均的指標。

由上面討論可發現,不同情況下所關注的指標不同,也可能要同時考慮到兩者,這時候將兩者做調和平均做為新的指標,就是F1-Score。

F1-Score是F-measure通式的一個特例。

4.1 F-Measure

圖片來源:Wiki

4.2 F1-Score

Let 𝛽=1

圖片來源:Wiki

4.3 討論:

由F-measure的計算式可發現,當𝛽趨近於無限大時,F-measure就是Recall;當𝛽等於零,則代表了Precision。

--

--