「机器学习」分类算法常见的评估指标
分类算法常见的评估指标
1、混淆矩阵(Confuse Matrix)
(1)若一个实例是正类,并且被预测为正类,即为真正类TP(True Positive)
(2)若一个实例是正类,但是被预测为负类,即为假负类FN(False Negative)
(3)若一个实例是负类,但是被预测为正类,即为假正类FP(False Positive)
(4)若一个实例是负类,并且被预测为负类,即为真负类TN(True Negative)
将四个指标一起呈现在表格中,就得到了如下的混淆矩阵:
混淆矩阵 | 真实值 | ||
---|---|---|---|
正类 | 负类 | ||
预测值 | 正类 | TP(真正类) | FP(假正类) |
负类 | FN(假负类) | TN(真负类) |
假设情况一:测试集有100个数据,我的模型预测结果中有60个正确值(其中有20个预测错误)和40个错误值(其中有10个预测错误),但是在实际结果中有50个正确值和50个错误值,那么我们将得到如下的混淆矩阵:
混淆矩阵 | 真实值 | ||
---|---|---|---|
正类 | 反类 | ||
预测值 | 正类 | 40 | 20 |
反类 | 10 | 30 |
2、准确率(Accuracy)
准确率(ACC):对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。
A
c
c
u
r
a
c
y
=
T
P
+
T
N
T
P
+
T
N
+
F
P
+
F
N
Accuracy = \frac{TP + TN}{TP + TN + FP + FN}
Accuracy=TP+TN+FP+FNTP+TN
针对情况一:
A
c
c
u
r
a
c
y
=
40
+
30
100
=
0.7
Accuracy = \frac{40 + 30}{100} = 0.7
Accuracy=10040+30=0.7
缺陷:这个指标不适合正负样本不均衡的情况,例如:假设测试集有100个数据,其中90个是正类,剩余10个是负类。即使分类模型将所有实例均预测为正类,Accuracy也有90,这样就没什么意义了。
3、精确率(Precision)
精准率(PPV):又称查准率,正确预测为正样本(TP)占预测为正样本(TP+FP)的百分比。
P
r
e
c
i
s
i
o
n
=
T
P
T
P
+
F
P
Precision = \frac{TP}{TP + FP}
Precision=TP+FPTP
针对情况一:
P
r
e
c
i
s
i
o
n
=
40
40
+
20
=
2
3
≈
0.67
Precision = \frac{40}{40 + 20} = \frac{2}{3} ≈ 0.67
Precision=40+2040=32≈0.67
4、召回率(Recall)
召回率:又称为查全率,正确预测为正样本(TP)占正样本(TP+FN)的百分比。
R
e
c
a
l
l
=
T
P
T
P
+
F
N
Recall = \frac{TP}{TP + FN}
Recall=TP+FNTP
针对情况一:
R
e
c
a
l
l
=
40
40
+
10
=
0.8
Recall = \frac{40}{40 + 10} = 0.8
Recall=40+1040=0.8
5、F1 Score
精确率和召回率是相互影响的,精确率升高则召回率下降,召回率升高则精确率下降,如果需要兼顾二者,就需要精确率、召回率的结合,最常见的方法就是F-Measure,又称F-Score。F-Measure是P和R的加权调和平均,即:
1
F
=
1
1
+
β
2
⋅
(
1
P
r
e
c
i
s
i
o
n
+
β
2
R
e
c
a
l
l
)
\frac{1}{F} = \frac{1}{1 + \beta^2} \cdot (\frac{1}{Precision} + \frac{\beta^2}{Recall})
F1=1+β21⋅(Precision1+Recallβ2)
特别地,当β=1时,也就是常见的F1-Score,是P和R的调和平均,当F1较高时,模型的性能越好。
1
F
1
=
1
1
+
1
⋅
(
1
P
r
e
c
i
s
i
o
n
+
1
R
e
c
a
l
l
)
\frac{1}{F1} = \frac{1}{1 + 1} \cdot (\frac{1}{Precision} + \frac{1}{Recall})
F11=1+11⋅(Precision1+Recall1)
F 1 = 2 1 P r e c i s i o n + 1 R e c a l l = 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 = 2 × T P 样 本 总 数 + T P − T N F1 = \frac{2}{\frac{1}{Precision} + \frac{1}{Recall}} = \frac{Precision * Recall * 2}{Precision + Recall} = \frac{2 \times TP}{样本总数 + TP - TN} F1=Precision1+Recall12=Precision+RecallPrecision∗Recall∗2=样本总数+TP−TN2×TP
针对情况一:
F
1
=
2
1
P
r
e
c
i
s
i
o
n
+
1
R
e
c
a
l
l
=
2
3
2
+
5
4
=
8
11
≈
0.73
F1 = \frac{2}{\frac{1}{Precision} + \frac{1}{Recall}} = \frac{2}{\frac{3}{2} + \frac{5}{4}} = \frac{8}{11} ≈ 0.73
F1=Precision1+Recall12=23+452=118≈0.73
6、P-R曲线(Precision-Recall Curve)
P-R曲线是描述精确率和召回率变化的曲线,如下图所示:
我们希望分类结果的Precision越高越好,同时Recall也越高越好,但事实上这两者在某些情况下有矛盾的。假设情况二:测试集有100个数据,我的模型预测结果中有1个正确值(其中有0个预测错误)和99个错误值(其中有99个预测错误),即在实际结果中有100个正确值和0个错误值。那么准确率Precision=1,而召回率Recall=0.01。假设情况三:测试集有100个数据,我的模型预测结果中有100个正确值(其中有99个预测错误)和0个错误值(其中有0个预测错误),即在实际结果中有1个正确值和99个错误值。那么准确率Precision=0.01,而召回率Recall=1。因此在不同的场合中需要自己判断希望Precision比较高还是Recall比较高。如果是做实验研究,可以绘制P-R曲线来帮助分析。
P-R曲线如何评估呢?若一个学习器B的P-R曲线被另一个学习器A的P-R曲线完全包住,则称:A的性能优于B。若A和B的曲线发生了交叉,则谁的曲线下的面积大,谁的性能更优。但一般来说,曲线下的面积是很难进行估算的,所以衍生出了“平衡点”(Break-Event Point,简称BEP),即当P=R时的取值,平衡点的取值越高,性能更优。
7、ROC(Receiver Operating Characteristic)
真正类率(true positive rate, TPR),也称为灵敏度 sensitivity,也即召回率,刻画的是被分类器正确分类的正实例占所有正实例的比例。
T
P
R
=
T
P
T
P
+
F
N
TPR = \frac{TP}{TP + FN}
TPR=TP+FNTP
假负类率(false negative rate, FNR),刻画的是被分类器错认为负类的正实例占所有正实例的比例。
F
N
R
=
F
N
F
N
+
T
P
FNR = \frac{FN}{FN + TP}
FNR=FN+TPFN
假正类率(false positive rate, FPR),也称为1-specificity,刻画的是被分类器错认为正类的负实例占所有负实例的比例。
F
P
R
=
F
P
F
P
+
T
N
FPR = \frac{FP}{FP + TN}
FPR=FP+TNFP
真负类率(true negative rate, TNR),也称为特异率 specificity,刻画的是被分类器正确分类的负实例占所有负实例的比例。
T
N
R
=
T
N
T
N
+
F
P
TNR = \frac{TN}{TN + FP}
TNR=TN+FPTN
细分析上述公式,我们可以可看出,灵敏度(真正率)TPR是正样本的召回率,特异度(真负率)TNR是负样本的召回率,而假负率 FNR=1−TPR、假正率 FPR=1−TNR。
ROC曲线:接收者操作特征(receiver operating characteristic),ROC曲线上每个点反映着对同一信号刺激的感受性。该曲线最早应用于雷达信号检测领域,用于区分信号与噪声。后来人们将其用于评价模型的预测能力。
横轴:负正类率(FPR,特异度);
纵轴:真正类率(TPR,灵敏度)。
理想目标: TPR=1, FPR=0,即图中(0,1)点。故ROC曲线越靠拢(0,1)点,即,越偏离45度对角线越好。
8、AUC(Area Under Curve)
AUC(Area Under Curve)被定义为 ROC曲线 下与坐标轴围成的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。AUC越接近1.0,检测方法真实性越高;等于0.5时,则真实性最低,无应用价值。
AUC的物理意义:首先AUC值是一个概率值。假设分类器的输出是样本属于正类的Score(置信度),则AUC的物理意义为,任取一对(正、负)样本,正样本的Score大于负样本的Score的概率。
为什么使用Roc和Auc评价分类器?
既然已经这么多标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变换的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现样本类不平衡,即正负样本比例差距较大,而且测试数据中的正负样本也可能随着时间变化。下图是ROC曲线和Presision-Recall曲线的对比:
在上图中,a和c为Roc曲线,b和d为Precision-Recall曲线。a和b展示的是分类其在原始测试集(正负样本分布平衡)的结果,c和d是将测试集中负样本的数量增加到原来的10倍后,分类器的结果,可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线变化较大。