目录
1. 二分类问题
1.1 概念
TP FP FN TN
预测类别-正 | 预测类别-负 | |
---|---|---|
真实类别-正 | 真正例(True Positive,TP) | 假负例(False Negative,FN) |
真实类别-负 | 假正例(False Positive,FP) | 真负例(True Negative,TN) |
准确率 Precision
准确率,衡量分类器找对正例的能力:
P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP}Precision=TP+FPTP
召回率 Recall
召回率,衡量分类器找全正例的能力:
R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN}Recall=TP+FNTP
F值 F-score or F-measures
F值,权衡准确率和召回率两个指标:
F β = ( 1 + β 2 ) × P r e c i s i o n × R e c a l l β 2 × P r e c i s i o n + R e c a l l F_{\beta}=\frac{(1+\beta^2)\times Precision\times Recall}{\beta^2 \times Precision+Recall}Fβ=β2×Precision+Recall(1+β2)×Precision×Recall
β \betaβ 的选择:
当 β < 1 \beta <1β<1 时,准确率更重要,当 β > 1 \beta > 1β>1 时,召回率更重要。
当 β = 1 \beta =1β=1 时,准确率和召回率同样重要,也是最常用的F1-score:
F 1 = 2 × P r e c i s i o n × R e c a l l P r e c i s i o n + R e c a l l F_{1}=\frac{2\times Precision\times Recall}{Precision+Recall}F1=Precision+Recall2×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 计算公式
L LL 标签集合
S SS 样本集合
y yy 样本的预测标签集合
y ^ \widehat{y}y 样本的真实标签集合
P ( A , B ) : = ∣ A ∩ B ∣ ∣ A ∣ P(A,B) :=\frac{\vert A\cap B\vert}{\vert A\vert}P(A,B):=∣A∣∣A∩B∣
R ( A , B ) : = ∣ A ∩ B ∣ ∣ B ∣ R(A,B):=\frac{\vert A\cap B\vert}{\vert B\vert}R(A,B):=∣B∣∣A∩B∣
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)}Fβ(A,B):=β2×P(A,B)+R(A,B)(1+β2)×P(A,B)×R(A,B)
Average | Precision | Recall | F_beta |
---|---|---|---|
None | ⟨ P ( y , y ^ ) ∣ l ∈ L ⟩ \langle P(y, \widehat{y}) \vert l \in L\rangle⟨P(y,y)∣l∈L⟩ | ⟨ R ( y , y ^ ) ∣ l ∈ L ⟩ \langle R(y, \widehat{y}) \vert l \in L\rangle⟨R(y,y)∣l∈L⟩ | ⟨ F β ( y , y ^ ) ∣ l ∈ L ⟩ \langle F_\beta(y, \widehat{y}) \vert l \in L\rangle⟨Fβ(y,y)∣l∈L⟩ |
Micro | P ( y , y ^ ) P(y, \widehat{y})P(y,y) | R ( y , y ^ ) R(y, \widehat{y})R(y,y) | F β ( y , y ^ ) F_\beta(y, \widehat{y})Fβ(y,y) |
Macro | 1 ∣ L ∣ ∑ l ∈ L P ( y l , y ^ l ) \frac{1}{\vert L\vert} \sum_{l \in L}P(y_l, \widehat{y}_ l )∣L∣1∑l∈LP(yl,yl) | 1 ∣ L ∣ ∑ l ∈ L R ( y l , y ^ l ) \frac{1}{\vert L\vert} \sum_{l \in L}R(y_l, \widehat{y}_ l )∣L∣1∑l∈LR(yl,yl) | 1 ∣ L ∣ ∑ l ∈ L F β ( y l , y ^ l ) \frac{1}{\vert L\vert} \sum_{l \in L}F_\beta(y_l, \widehat{y}_ l )∣L∣1∑l∈LFβ(yl,yl) |
Weighted | 1 ∑ l ∈ L ∣ y ^ l ∣ ∑ l ∈ L ∣ y ^ l ∣ P ( y l , 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 )∑l∈L∣yl∣1∑l∈L∣yl∣P(yl,yl) | 1 ∑ l ∈ L ∣ y ^ l ∣ ∑ l ∈ L ∣ y ^ l ∣ R ( y l , 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 )∑l∈L∣yl∣1∑l∈L∣yl∣R(yl,yl) | 1 ∑ l ∈ L ∣ y ^ l ∣ ∑ l ∈ L ∣ y ^ l ∣ F β ( y l , 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 )∑l∈L∣yl∣1∑l∈L∣yl∣Fβ(yl,yl) |
.
2.3 对比
Micro vs Macro
- 当数据集每个Class的样本量差不多时,Micro和Macro指标不会有太大差别。
- 当数据集每个Class的样本量悬殊时(非均衡数据集):
Micro更侧重表现样本量多的Class,Macro更侧重表现样本量较少的Class。 - Micro和Macro指标出现较大差异:
当Micro平均大大低于Macro平均时,检查样本量多的Class;
当Macro平均大大低于Micro平均时,检查样本量少的Class。
.