混淆矩阵、准确率、召回率、ROC曲线、AUC

时间:2022-12-06 23:58:05

混淆矩阵、准确率、召回率、ROC曲线、AUC

混淆矩阵、准确率、召回率、ROC曲线、AUC

假设有一个用来对猫(cats)、狗(dogs)、兔子(rabbits)进行分类的系统,混淆矩阵就是为了进一步分析性能而对该算法测试结果做出的总结。假设总共有 27 只动物:8只猫, 6条狗,13只兔子。结果的混淆矩阵如上图所示,我们可以发现,只有主对角线上的预测结果是完全正确的。每一行的和为预测为该类的数量,每一列的和为实际该类的数量。在这个混淆矩阵中,实际有8只猫,但是系统将其中3只预测成了狗;对于6条狗,其中有1条被预测成了兔子,2条被预测成了猫。从混淆矩阵中我们可以看出系统对于区分猫和狗存在一些问题,但是区分兔子和其他动物的效果还是不错的。所有正确的预测结果都在对角线上,所以从混淆矩阵中可以很方便直观的看出哪里有错误,因为他们呈现在对角线外面。下面介绍混淆表格。

在预测分析中,混淆表格(有时候也称为混淆矩阵),是由false positives,false negatives,true positives和true negatives组成的两行两列的表格。它允许我们做出更多的分析,而不仅仅是局限在正确率,对于上面的矩阵,对于猫这一类的分类情况可以表示为下面的表格

混淆矩阵、准确率、召回率、ROC曲线、AUC

根据准确率和召回率的计算公式
\[ \begin{split} precision &= \dfrac{TP}{TP + FP}\\ recall &= \dfrac{TP}{TF + FN} \end{split} \]

于是根据precision以及recall的计算公式以及上面的表格,可以得到猫的分类准确率为5/(5 + 2),猫分类的召回率为 5/(5+3)。

这部分内容来自https://blog.csdn.net/qq_28448117/article/details/78219549

混淆矩阵、准确率、召回率、ROC曲线、AUC

  • 真正类率(True Postive Rate)TPR: TP/(TP+FN),代表分类器预测的正类中实际正实例占所有正实例的比例。
  • 负正类率(False Postive Rate)FPR: FP/(FP+TN),代表分类器预测的正类中实际负实例占所有负实例的比例。
  • 真负类率(True Negative Rate)TNR: TN/(FP+TN),代表分类器预测的负类中实际负实例占所有负实例的比例,TNR=1-FPR。

假设采用逻辑回归分类器,其给出针对每个实例为正类的概率,那么通过设定一个阈值如0.6,概率大于等于0.6的为正类,小于0.6的为负类。对应的就可以算出一组(FPR,TPR),在平面中得到对应坐标点。随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中同样也掺杂着真正的负实例,即TPR和FPR会同时增大。阈值最大时,对应坐标点为(0,0),阈值最小时,对应坐标点(1,1)。

如下面这幅图,(a)图中实线为ROC曲线,线上每个点对应一个阈值。

混淆矩阵、准确率、召回率、ROC曲线、AUC

  • 横轴FPR:1-TNR,1-Specificity,FPR越大,预测正类中实际负类越多。
  • 纵轴TPR:Sensitivity(正类覆盖率),TPR越大,预测正类中实际正类越多。

理想目标:TPR=1,FPR=0,即图中(0,1)点,故ROC曲线越靠拢(0,1)点,越偏离45度对角线越好,Sensitivity、Specificity越大效果越好。
AUC(Area under Curve):Roc曲线下的面积,介于0.1和1之间。AUC作为数值可以直观的评价分类器的好坏,值越大越好。AUC值是一个概率值,当你随机挑选一个正样本以及负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值,AUC值越大,当前分类算法越有可能将正样本排在负样本前面,从而能够更好地分类。

以上内容来自https://blog.csdn.net/u013385925/article/details/80385873