机器学习分类问题的评估指标
分类准确率(Accuracy)
实际上就是正确分类的样本数与总样本数的比例,
A
c
c
u
r
a
c
y
=
T
P
+
T
N
T
P
+
F
N
+
F
P
+
T
N
Accuracy={TP+TN\over TP+FN+FP+TN}
Accuracy=TP+FN+FP+TNTP+TN
准确率有一定的局限性,假设我们分类的目标是识别好人和坏人,好人有95个,坏人只有5个(样本不平衡)。如果我们设计的模型是将所有的人全部都识别成好人,那么分类准确率为95%,但是这个模型并没啥用,因为一个坏人都没别识别出来。
查全率和召回率(Recall,记为R)
在实际为正类的样本中,预测正确的比例,西瓜例子中
R
=
T
P
T
P
+
F
N
R={TP\over TP+FN}
R=TP+FNTP
而上面这个识别坏人的例子中,坏人为正类,此时查全率R为0.
查准率或精准率(Precision,记为P)
在预测为正类的样本中,预测正确的比例,西瓜例子中
P
=
T
P
T
P
+
F
P
P={TP\over TP+FP}
P=TP+FPTP
通常来说,查全率和查准率是负相关关系的。
F1分数(F1 Score)
F1分数是查全率和查准率的调和平均数
2
F
1
=
1
R
+
1
P
{2\over F_1}={1\over R}+{1\over P}
F12=R1+P1
化简可得
F
1
=
2
∗
P
∗
R
P
+
R
F_1=2*{P*R\over P+R}
F1=2∗P+RP∗R
如果带入查全率
R
=
T
P
T
P
+
F
N
R={TP\over TP+FN}
R=TP+FNTP
和查准率
P
=
T
P
T
P
+
F
P
P={TP\over TP+FP}
P=TP+FPTP
可得:
F
1
=
2
T
P
2
T
P
+
F
P
+
F
N
F_1={2TP\over 2TP+FP+FN}
F1=2TP+FP+FN2TP
事实上Fi分数是Fβ分数在β等于1时的特例,
F
β
=
(
1
+
β
2
)
∗
P
∗
R
β
2
∗
P
+
R
(
β
>
=
0
)
F_\beta=(1+\beta^2)*{P*R\over \beta^2*P+R}(\beta>=0)
Fβ=(1+β2)∗β2∗P+RP∗R(β>=0)
β大于1时,查全率的权重高于精确率;β小于1时,精确率的权重高于查全率。
注意:Fi和Fβ的范围都是位于[0,1]之间,越接近1表示分类效果越好。
ROC曲线和AUC
ROC曲线全称为受试者工作特征曲线(receiver operating characteristic curve),它是根据一系列不同的分类阈值,以真正类率(True Postive Rate,TPR)为纵坐标,假正类率(False Positive Rate, FPR)为横坐标绘制的曲线。
其中,真正类率TPR就是我们前面介绍的查全率R,它在ROC曲线中又可以被称为灵敏度(sensitivity);假正类率(FPR)的计算公式是FPR=FP/(FP+TN),它表示将负类错误的识别为正类的样本占所有负类样本的比例,一般我们记1-FPR为特异性(specificity)。
- 将不同的模型的ROC曲线绘制在同一张图内,最靠近左上角的那条曲线代表的模型的分类效果最好。
- 实际任务中,情况很复杂,如果两条ROC曲线发生了交叉,则很难一般性地断言谁优谁劣。因此我们引入AUC,AUC (Area Under Curve)被定义为ROC曲线与下方的坐标轴围成的面积,AUC的范围位于[0,1]之间,AUC越大则模型的分类效果越好,如果AUC小于等于0.5,则该模型是不能用的。通常AUC大于0.85的模型就表现可以了。