F-measure 与代价敏感评价指标

以前都是直接使用 Accuracy, Precision, Recall, F1-measure 这些评价指标, 没有深究其原因, 更没有与误分类代价放在一起分析. 本贴就来杠这个事情.

1. 例子

先找一个百度百科的例子并进行适当修改.
例 1 假如某个班级有男生 80 人, 女生 20 人, 共计 100 人. 目标是找出所有女生. 一号学习器 L 1 L_1 L1 挑选出 30 个人, 其中 18 人是女生, 另外还错误的把 12 个男生也当作女生挑选出来了. 作为评估者的你需要来评估 (evaluate) 他的工作.

2. 混淆矩阵

例 1 可以看作是一个二分类问题, 其混淆矩阵为:

Predicted \ actual Yes No
Yes T P = 18 TP = 18 TP=18 F P = 12 FP = 12 FP=12
No F N = 2 FN = 2 FN=2 T N = 68 TN = 68 TN=68

其中:

  • T P TP TP 表示正确挑出来的女生数;
  • F P FP FP 表示错误挑出的男生 (以为是女生) 数;
  • F N FN FN 表示未挑出的女生 (以为是男生) 数;
  • T N TN TN 表示正确挑出的男生数 (在本例中, 没挑选就默认分类为男生).

3. 评价指标

3.1 准确率

A c c = T P + T N T P + F P + F N + T N = 86 100 (1) Acc = \frac{TP + TN}{TP + FP + FN + TN} = \frac{86}{100} \tag{1} Acc=TP+FP+FN+TNTP+TN=10086(1)
它可以直接地推广到多分类问题.

3.2 精确率 (precision)

P = T P T P + F P = 18 30 (2) P = \frac{TP}{TP + FP} = \frac{18}{30} \tag{2} P=TP+FPTP=3018(2)
关心被选择部分 (即被分类为女生的部分) 有多大比例正确.

3.3 召回率 (recall)

R = T P T P + F N = 18 20 (3) R = \frac{TP}{TP + FN} = \frac{18}{20} \tag{3} R=TP+FNTP=2018(3)
关心女生有多大比例被挑出来.

3.4 综合评价指标 F F F-measure

对于同一学习器, 随着挑选出来的学生 (即分类为女生) 数量的增加, P P P 一般情况下会减小, R R R 则会增加 (肯定不会减小). 需要一个综合评价指标
F = ( α 2 + 1 ) P R α 2 ( P + R ) (4) F = \frac{(\alpha^2 + 1)PR}{\alpha^2 (P + R)} \tag{4} F=α2(P+R)(α2+1)PR(4)
一般取 α = 1 \alpha = 1 α=1
F 1 = 2 P R P + R = 2 T P T P + F P T P T P + F N T P T P + F P + T P T P + F N = 2 T P 2 T P + F P + F N = 72 100 (5) F1 = \frac{2PR}{P + R} = \frac{2\frac{TP}{TP+FP}\frac{TP}{TP + FN}}{\frac{TP}{TP + FP} + \frac{TP}{TP + FN}} = \frac{2 TP}{2 TP + FP + FN} = \frac{72}{100}\tag{5} F1=P+R2PR=TP+FPTP+TP+FNTP2TP+FPTPTP+FNTP=2TP+FP+FN2TP=10072(5)

3.4 分析

  • Accuracy 仅关心多大比例的正确性, 而不区分哪种正确 (错误).
  • Precision 和 Recall 则更多地关注目标类别 (女生).

二号学习器 L 2 L_2 L2 挑出了 34 个人, 其中 20 个女生, 即: T P = 20 TP = 20 TP=20, F P = 14 FP = 14 FP=14, F N = 0 FN = 0 FN=0, T N = 66 TN = 66 TN=66. 则 A c c = 86 100 Acc = \frac{86}{100} Acc=10086, P = 20 34 P = \frac{20}{34} P=3420, R = 20 20 = 1 R = \frac{20}{20} = 1 R=2020=1, F 1 = 40 54 = 74 100 F1 = \frac{40}{54} = \frac{74}{100} F1=5440=10074.
三号学习器 L 3 L_3 L3 挑出了 6 个人, 全为女生, 即: T P = 6 TP = 6 TP=6, F P = 0 FP = 0 FP=0, F N = 14 FN = 14 FN=14, T N = 80 TN = 80 TN=80. 则 A c c = 86 100 Acc = \frac{86}{100} Acc=10086, P = 1 1 = 1 P = \frac{1}{1} = 1 P=11=1, R = 6 20 R = \frac{6}{20} R=206, F 1 = 12 26 = 46 100 F1 = \frac{12}{26} = \frac{46}{100} F1=2612=10046.
由此可见, 三个学习器具有相同的 Accuracy, 但不同的 F 1 F1 F1, 且 R R R 越高 F F F 越大. 可以试着证明:
性质 1: 根据同一个数据集获得的学习器, Accuracy 相同的时候, R R R 越大则 F 1 F1 F1 越大.

  • 由于 R R R 仅关注女生, 使用 F F F 导致了男女不平等. 这使我想起了代价敏感分类. 但 (4) 式中的参数 α \alpha α 并没有倾向于 R R R, 所以用它直接来做代价敏感学习的评价指标不合适.

4 代价敏感的评价指标

二分类问题有两个误分类代价. 不失一般性, 可以固定一个, 将另一个看作比例. 假设男生误分类为女生的代价为 1 1 1 元 , 女生误分类为男生的代价为 c c c 元.
则总的误分类代价 (即分类器收到的罚款) 为
C = F P + c × F N (6) C = FP + c \times FN \tag{6} C=FP+c×FN(6)
相应可以定义平均误分类代价. 在这里就不写了.
c = 5 c = 5 c=5,
L 1 L_1 L1 收到总的罚款为 12 + 5 × 2 = 22 12 + 5 \times 2 = 22 12+5×2=22 (元);
L 2 L_2 L2 收到的总罚款为 14 + 5 × 0 = 14 14 + 5 \times 0 = 14 14+5×0=14 (元);
L 3 L_3 L3 收到的总罚款为 0 + 5 × 14 = 70 0+ 5 \times 14 = 70 0+5×14=70 (元).

现在看来, 跟 F F F-measure 好像没啥关系.

再想想

5. 附录

性质1 的证明
分别记学习器 L 1 L_1 L1 L 2 L_2 L2 产生的混淆矩阵的相应值为 T P 1 TP_1 TP1, F P 1 FP_1 FP1, F N 1 FN_1 FN1, T N 1 TN_1 TN1 T P 2 TP_2 TP2, F P 2 FP_2 FP2, F N 2 FN_2 FN2, T N 2 TN_2 TN2.
该性质是需要证明
{ T P 1 + T N 1 = T P 2 + T N 2 F P 1 + F N 1 = F P 2 + F N 2 T P 1 T P 1 + F N 1 < T P 2 T P 2 + F N 2 ⇒ 2 T P 1 2 T P 1 + F P 1 + F N 1 < 2 T P 2 2 T P 2 + F P 2 + F N 2 \left\{\begin{array}{l}TP_1 + TN_1 = TP_2 + TN_2\\ FP_1 + FN_1 = FP_2 + FN_2\\ \frac{TP_1}{TP_1 + FN_1} < \frac{TP_2}{TP_2 + FN_2} \end{array}\right. \Rightarrow\frac{2 TP_1}{2 TP_1 + FP_1 + FN_1} < \frac{2 TP_2}{2 TP_2 + FP_2 + FN_2} TP1+TN1=TP2+TN2FP1+FN1=FP2+FN2TP1+FN1TP1<TP2+FN2TP22TP1+FP1+FN12TP1<2TP2+FP2+FN22TP2

请继续 …


你可能感兴趣的:(机器学习基础,机器学习,神经网络,线性代数)