【筆記】分類問題的模型評估(Precision, recall, F-measures)

1. 二分類問題

1.1 概念

TP FP FN TN

預測類別-正 預測類別-負
真實類別-正 真正例(True Positive,TP) 假負例(False Negative,FN)
真實類別-負 假正例(False Positive,FP) 真負例(True Negative,TN)

準確率 Precision

準確率,衡量分類器找對正例的能力:
Precision=TPTP+FP Precision=\frac{TP}{TP+FP}

召回率 Recall

召回率,衡量分類器找全正例的能力:
Recall=TPTP+FN Recall=\frac{TP}{TP+FN}

F值 F-score or F-measures

F值,權衡準確率和召回率兩個指標:
Fβ=(1+β2)×Precision×Recallβ2×Precision+Recall F_{\beta}=\frac{(1+\beta^2)\times Precision\times Recall}{\beta^2 \times Precision+Recall}
β\beta 的選擇:
β<1\beta <1 時,準確率更重要,當 β>1\beta > 1 時,召回率更重要。
β=1\beta =1 時,準確率和召回率同樣重要,也是最常用的F1-score:
F1=2×Precision×RecallPrecision+Recall F_{1}=\frac{2\times Precision\times Recall}{Precision+Recall}
應用中不同側重的例子:

  • 側重準確率:搜索
  • 側重召回率:疾病監測、垃圾郵件檢測

經手過的案例:

  • 側重召回率:mesh的噪聲面片檢測,檢測出噪聲面片後用傳統方法平滑。檢測噪聲面片時誤識別一些邊緣的非噪聲面片反而有利於後續的拉普拉斯平滑。

.

1.2 計算方法

在這裏插入圖片描述
Tips:
precision_score, recall_score, f1_score, fbeta_score 這4個函數內部都調用了precision_recall_fscore_support函數進行結果計算。
.

2. 多分類問題

2.1 介紹

Micro-average 微平均

不區分Class,只以預測Label和真實Label是否一致來計算準確率、召回率、F值。

Macro-average 宏平均

分別統計每個Class的準確率、召回率、F值,然後按Class取平均值

Weighted-average 加權平均

分別統計每個Class的準確率、召回率、F值,然後按每個Class的樣本數取加權平均值
.

2.2 計算公式

LL 標籤集合
SS 樣本集合
yy 樣本的預測標籤集合
y^\widehat{y} 樣本的真實標籤集合
P(A,B):=ABAP(A,B) :=\frac{\vert A\cap B\vert}{\vert A\vert}
R(A,B):=ABBR(A,B):=\frac{\vert A\cap B\vert}{\vert B\vert}
Fβ(A,B):=(1+β2)×P(A,B)×R(A,B)β2×P(A,B)+R(A,B)F_\beta(A,B):=\frac{(1+\beta^2 ) \times P(A,B)\times R(A,B)}{\beta^2\times P(A,B)+R(A,B)}

Average Precision Recall F_beta
None P(y,y^)lL\langle P(y, \widehat{y}) \vert l \in L\rangle R(y,y^)lL\langle R(y, \widehat{y}) \vert l \in L\rangle Fβ(y,y^)lL\langle F_\beta(y, \widehat{y}) \vert l \in L\rangle
Micro P(y,y^)P(y, \widehat{y}) R(y,y^)R(y, \widehat{y}) Fβ(y,y^)F_\beta(y, \widehat{y})
Macro 1LlLP(yl,y^l)\frac{1}{\vert L\vert} \sum_{l \in L}P(y_l, \widehat{y}_ l ) 1LlLR(yl,y^l)\frac{1}{\vert L\vert} \sum_{l \in L}R(y_l, \widehat{y}_ l ) 1LlLFβ(yl,y^l)\frac{1}{\vert L\vert} \sum_{l \in L}F_\beta(y_l, \widehat{y}_ l )
Weighted 1lLy^llLy^lP(yl,y^l)\frac{1}{ \sum_{l \in L}\vert \widehat{y}_ l\vert} \sum_{l \in L}\vert \widehat{y}_ l\vert P(y_l, \widehat{y}_ l ) 1lLy^llLy^lR(yl,y^l)\frac{1}{ \sum_{l \in L}\vert \widehat{y}_ l\vert} \sum_{l \in L}\vert \widehat{y}_ l\vert R(y_l, \widehat{y}_ l ) 1lLy^llLy^lFβ(yl,y^l)\frac{1}{ \sum_{l \in L}\vert \widehat{y}_ l\vert} \sum_{l \in L}\vert \widehat{y}_ l\vert F_\beta(y_l, \widehat{y}_ l )

來源:scikit-learn 文檔

.

2.3 對比

Micro vs Macro

  • 當數據集每個Class的樣本量差不多時,Micro和Macro指標不會有太大差別。
  • 當數據集每個Class的樣本量懸殊時(非均衡數據集)
    Micro更側重表現樣本量多的Class,Macro更側重表現樣本量較少的Class。
  • Micro和Macro指標出現較大差異:
    當Micro平均大大低於Macro平均時,檢查樣本量多的Class;
    當Macro平均大大低於Micro平均時,檢查樣本量少的Class。

.

2.4 計算方法

在這裏插入圖片描述

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