以前都是直接使用 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+FN2TP2⇒2TP1+FP1+FN12TP1<2TP2+FP2+FN22TP2
请继续 …