[机器学习] 分类算法评估指标
分类算法评估指标
精度(Accuracy)
即正确预测的正反例数 /预测总数
对于样例集D,分类错误率定义为
E
(
f
;
D
)
=
1
m
∑
i
=
1
m
I
(
f
(
x
i
)
≠
y
i
)
E(f ; D)=\frac{1}{m} \sum_{i=1}^{m} \mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right) \neq y_{i}\right)
E(f;D)=m1i=1∑mI(f(xi)=yi)
精度则定义为
acc
(
f
;
D
)
=
1
m
∑
i
=
1
m
I
(
f
(
x
i
)
=
y
i
)
=
1
−
E
(
f
;
D
)
\begin{aligned} \operatorname{acc}(f ; D) &=\frac{1}{m} \sum_{i=1}^{m} \mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right)=y_{i}\right) \\ &=1-E(f ; D) \end{aligned}
acc(f;D)=m1i=1∑mI(f(xi)=yi)=1−E(f;D)
-
对于样本类别数量严重不均衡的情况(skewed)不能用精度指标来衡量
例如:有A类1000个,B类5个,如果我把这1005个样本都预测成A类,正确率=1000/1005=99.5%
-
对于有倾向性的问题,往往不能用精度指标来衡量
例如:判断这个病人是不是病危,如果不是病危错误判断为病危,那只是损失一点医务人员的时间和精力,如果是把病危的人判断为非病危状态,那损失的就是一条人命
对于以上两种情况,单纯根据Accuracy来衡量算法的优劣已经失效,这个时候就需要对目标变量的真实值和预测值做更深入的分析
混淆矩阵(confusion matrix)
对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为
-
真正例(True Positive)
-
假正例(False Positive)
-
真反例(True Negative)
-
假反例(False Negative)
分类结果的混淆矩阵如下
预测值0 | 预测值1 | |
---|---|---|
真实值0 | TN | FP |
真实值1 | FN | TP |
精准率(precision)
precision = T P T P + F P \text {precision}=\frac{T P}{T P+F P} precision=TP+FPTP
精准率就是预测为正例的那些数据里预测正确的数据个数
召回率(recall)
recall = T P T P + F N \text {recall}=\frac{T P}{T P+F N} recall=TP+FNTP
召回率就是真实为正例的那些数据里预测正确的数据个数
精准率和查全率是一对矛盾的度量,一般来说,精准率高时,召回率则偏低;而召回率高时,精准率则偏低
F1 Score
F1 Score同时关注精准率和召回率,是precision 和 recall 的调和平均值
它的值更接近于Precision与Recall中较小的值
1
F
1
=
1
2
(
1
precision
+
1
recall
)
\frac{1}{F 1}=\frac{1}{2}\left(\frac{1}{\text {precision}}+\frac{1}{\text {recall}}\right)
F11=21(precision1+recall1)
F 1 = 2 ⋅ precision ⋅ recall precision + recall F 1=\frac{2 \cdot \text {precision } \cdot \text { recall}}{\text {precision }+\text {recall}} F1=precision +recall2⋅precision ⋅ recall
PR曲线
根据学习器的预测结果对样例进行排序, 排在前面的是学习器认为“最可能”是正例的样本, 排在最后的则是学习器认为“最 不可能”是正例的样本. 按此顺序逐个把样本作为正例进行预测, 则每次可以计算出当前的精准率、召回率
以精准率为纵轴、召回率为横轴作图, 就得到了精准率-召回率曲线, 简称“P-R曲线”,显示该曲线的图称为“P-R图”
与ROC曲线左上凸效果好不同的是,PR曲线是右上凸效果越好
若一个学习器的P-R曲线被另一个学习器的曲线完全包住,则可断言后者的性能优于前者
ROC曲线
ROC(Receiver Operating Characteristic)受试者工作特性曲线
True Postitve Rate(真正例率):正样本中被预测对比例
TPR = T P T P + F N \text {TPR}=\frac{TP}{TP+FN} TPR=TP+FNTP
False Positive Rate(假正例率):负样本被预测错的比例
FPR = F P T N + F P \text {FPR}=\frac{FP}{TN+FP} FPR=TN+FPFP
ROC是一个以TPR为纵坐标,FPR为横坐标构造出来的一幅图
在ROC空间,ROC曲线越凸向左上方向效果越好,因为这说明精确率高且覆盖率大
进行学习器的比较时, 与 P-R 图相似, 若一个学习器的 ROC 曲线被另一 个学习器的曲线完全“包住”, 则可断言后者的性能优于前者; 若两个学习器的 ROC 曲线发生交叉, 则难以一般性地断言两者熟优熟劣. 此时如果一定要进行比较, 则较为合理的判据是比较 ROC曲线下的面积, 即 AUC
AUC
AUC(Area Under Curve)是一种模型分类指标,且仅仅是二分类模型的评价指标
AUC 值为 ROC 曲线所覆盖的区域面积,显然,AUC越大,分类器分类效果越好
AUC的物理意义正样本的预测结果大于负样本的预测结果的概率。所以AUC反应的是分类器对样本的排序能力。另外值得注意的是,AUC对样本类别是否均衡并不敏感,这也是不均衡样本通常用AUC评价分类器性能的一个原因
参考
机器学习-周志华