分类器模型好坏「和」分类器的评价指标
1. 为什么需要评价?
-
训练目标函数只是理想目标函数的一种近似。
-
评价指标可以量化模型在不同方面的表现(查全、查准…)。
-
Rank,可以帮助算法人员在特定的目标上不断前进(刷榜)。
-
量化模型期望表现与baseline之间的差距,量化期望表现与实际表现的差距。
-
如果最终目标就是分类,可以帮助调试代码。
2. 从二分类开始
输入为 X, 输出Y为0或1, 二分类模型为:
Y
^
=
h
(
X
)
\hat{Y} = h(X)
Y^=h(X)
这样的分类模型包括两种:
(1)直接输出类别标签的聚类模型,比如 KNN,决策树;
(2)输出实际的估计值,即属于某个类的得分,比如SVM,逻辑回归,神经网络。
第2类往往需要选定一个阈值来输出最终值,第1类可以视为第二类的一个特例,所以以第二类介绍评价指标。
如上图左边,样本得分越靠近1,则其属于正类的可能性更大;得分越靠近0,其属于负类的可能性更大。但是,只有选定一个阈值(Th=0.5)之后,模型会变成一个分类器,预测结果是否属于正负类。也只有在选定这个阈值之后,我们才可以评价这个模型(第二类)的得分指标。
2.1 混淆矩阵
模型选定阈值之后,我们就可以计算这个分类起的混淆矩阵。混淆矩阵包含以下关键要素:
- 阈值(Threshold):选定一个阈值之后,模型变成分类器;不同的阈值决定的是不同的分类器。
- True Positive(TP):分类器预测为正,且标注类别也为正的样本数量。
- True Negative(TN):分类器预测为负,且标注类别也为负的样本数量。
- False Positive (FP):分类器预测为正,但是标注类别为负的样本数量,也叫做Type-1 errors。
- False Negative (FN):分类器预测为负,但是类别标注为正的样本数量,也叫做Type-2 errors。
于是,我们可以统计出上面模型例子的混淆矩阵:
2.2 指标评价:Accuracy,Precision,Recall,Sspecificity,F1-score
当我们为模型选定一个阈值后,我们就可以用以下的评价指标去衡量上面模型的效果:
-
Accuracy
T P + T N A l l = 9 + 8 9 + 8 + 2 + 1 = 0.85 \frac{TP+TN}{All} = \frac{9+8}{9+8+2+1}=0.85 AllTP+TN=9+8+2+19+8=0.85 -
Precision
T P T P + F P = 9 9 + 2 = 0.81 \frac{TP}{TP+FP} = \frac{9}{9+2} = 0.81 TP+FPTP=9+29=0.81
-
Recall (Sensitivity)
T P T P + F N = 9 9 + 1 = 0.9 \frac{TP}{TP+FN} = \frac{9}{9+1} = 0.9 TP+FNTP=9+19=0.9 -
Specificity (Negative Recall)
T N T N + F P = 8 8 + 2 = 0.8 \frac{TN}{TN+FP} = \frac{8}{8+2} = 0.8 TN+FPTN=8+28=0.8
-
F1-score
PR和REC的调和平均数:
2 F 1 = 1 P R + 1 R E C = > F 1 = 2 P R × R E C P R + R E C = 2 × 0.81 × 0.9 0.81 + 0.9 = 0.857 \frac{2}{F1} = \frac{1}{PR} +\frac{1}{REC} => F1 = \frac{2 PR×REC}{PR+REC} = \frac{2 ×0.81× 0.9}{0.81+0.9}= 0.857 F12=PR1+REC1=>F1=PR+REC2PR×REC=0.81+0.92×0.81×0.9=0.857
2.3 综合评价: ROC,PR曲线
当我们改变阈值,就可以得到不同的指标分数:
- ROC 曲线
当我们,按照上表,将Recall(Sensitivity)和Specificity分别作为横纵轴,就可以绘制ROC曲线:
曲线的点是选取不同阈值时,对应指标的得分。阈值步距取得越小,得到的曲线就越平滑。
AUC为曲线下面的面积,它总是一个(0.5, 1)间的值。AUC值越大,就代表模型越好,分类能力越强;AUC值越小就代表模型越差,越接近于瞎猜。当一个模型具有不错的AUC值的时候,它就可以通过适当的阈值特例化为一个不错的分类器。
- PR曲线
PR曲线是以不同阈值下的Recall和Precision
3. 样本不均衡
当,
P
o
s
i
t
i
v
e
A
L
L
<
5
%
\frac{Positive}{ALL} < 5 \%
ALLPositive<5%
时,该分类人物就会呈现典型的样本不均衡征兆,此时:
(1)评价指标没什么意义了;
(2)训练过程可能会忽视少数(正样本)的实际特征,映射到非我们分类目的的特征空间;
(3)出现不能容忍的FP,或者FN。
4. 多分类的情况
1、混淆矩阵变成了N×N,但仍期望大量预测结果集中在对角线附近。
2、大部分的评价指标,变成了 1类 vs 多类的情况,有时会求取各类平均的指标或者排名前几类的指标。
3、样本不均衡的情况普遍存在(因为1类 vs 多类评价)。
4、Cost sensitive learning techniques – 给混淆矩阵每个元素赋初始值,将其包含进训练过程的损失函数中作为惩罚项。