模型性能评估指标汇总,F1,召回率,精确,ROC,P-R曲线,AUC

Preliminary

  • TP:实际为P,预测为P
  • TN:实际为N,预测为N
  • FP:实际为N,预测为P
  • FN:实际为P,预测为N

如何记忆:

  • TP/TN: 以T开头,表明预测正确,预测即为第二个字母
  • FP/FN: 以F开头,表明预测错误,预测与第二个字母相反

Accuracy

最简单也是最好理解的,也是我们很早就开始接触的一个指标就是准确率,即预测正确的样本除以总样本数
accuracy=\frac{TP+TN}{TP+TN+FP+FN}

Recall, Precision, F1

  • Recall(召回率):预测正确的正类在正类样本中的比例(针对于样本真实情况)
  • Precision(精确率):预测正确的正类在预测为正类中的比例(针对于预测情况)
  • F1:两者通常难以兼得,因此引入两者的调和平均,来得到一个trade-off的值
    Recall(召回率/查全率/sensitivity/真正例率/TPR) = \frac{TP} {TP+FN}\\ Precision(精确率/查准率) = \frac{TP} {TP+FP}\\ F1 = \frac{precision * recall * 2} {precision + recall}

micro 与macro

有时我们如果多次训练或测试,每次都有一个混淆矩阵,或者多分类任务,此时需要综合考虑recall,precision,f1
macro(P) = \frac1n\sum_{i=1}^nP_i\\ macro(R) = \frac1n\sum_{i=1}^nR_i\\ macro(f1) = \frac {2*macro(P)*macro(R)}{macro(R)+macro(P)}\\ micro(P)=\frac{\overline{TP}}{\overline{TP}+\overline{FP}} \\ micro(R)=\frac{\overline{TP}}{\overline{TP}+\overline{FN}} \\ macro(f1) = \frac {2*micro(P)*micro(R)}{micro(R)+micro(P)}

P-R曲线

对于一个模型最终输出的分类结果,不同的阈值,可以得到不同的precision与recall,将其绘制成一条曲线。

  • 如果一个模型的P-R曲线完全被另外一个模型的曲线“包住”,如下图的A与C,在Precision相等的情况下,Recall_A > Recall_C,在Recall相等的情况下,Precision_A > Precision_C,因此A模型由于C模型。
  • 如果两条曲线有交点(比如A与B),可以将曲线与x轴形成的面积作为一个评估指标,但是这个值不容易计算,因此有了以下衡量方法:
    • BEP(Break-event Point),平衡点,Recall与precision相等的时候的取值,此时比较A优于B(取BEP大的)
    • F1值


      图源机器学习——周志华

ROC与AUC-解决样本分布不均衡

ROC

ROC:Receiver Operating Characteristic,横轴:FPR(假正例率,在所有负例中,有多少被识别为正例),纵轴:TPR(真正例率,在所有正例中,有多少被识别为正例)
TPR=\frac{TP}{TP+FN}(真正例率)\\ FPR = \frac{FP}{TN+FP} (假正例率)
与P-C曲线类似,在取不同阈值的时候,可以得到多个TPR与多个FPR,将其绘制成一条曲线,即得到了ROC曲线。

  • (0,0)点:当阈值等于1时,即把所有样本都预测为反例时,此时TPR与FPR均为0,因此ROC曲线过原点。
  • (1,1)点:当阈值等于0时,即把所有样本都预测为正例,此时TPR与FPR均为1,因此ROC曲线一定过(1,1)点

AUC

当比较两个分类模型的性能时,如果一个模型A的ROC曲线完全包住了另一个模型B,那么前者的性能优于后者(当真正例率相等时,A的假正例率低于B,反之亦然),而如果有交点,此时我们可以比较ROC曲线下的面积,即AUC(Area under ROC curve)。

AUC:若ROC曲线为y=x,表示的意义是:对于不论真实类别是1还是0的样本,分类器预测为1的概率是相等的。而我们希望分类器达到的效果是:对于真实类别为1的样本,分类器预测为1的概率(即TPRate),要大于真实类别为0而预测类别为1的概率(即FPRate),即y>x

AUC的含义:AUC是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。

ROC与AUC的优势

准确率有时并不可靠,比如在100个样本当中,90个为正例,10个为负例。此时如果一个模型将所有样本预测为positive,准确率也有90%。但是ROC曲线不受到样本分布不均衡的影响,因为其横坐标与纵坐标都是在真实的正样本和负样本当中观察问题
同样的例子,TPR 只关注 90% 正样本中有多少是被真正预测的,而与10%毫无关系,同理,FPR 只关注 10% 负样本中有多少是被错误预测的,也与那 90%无关系,因此选用TPR和FPR可以避免样本分布不均衡的问题。

几种情况

  • AUC = 1:是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
  • 0.5 < AUC < 1:优于随机猜测。如果这个模型阈值设定合理,有预测价值。
  • AUC = 0.5:跟随机猜测一样(例:丢铜板),模型没有预测价值。
  • 0<AUC < 0.5:比随机猜测还差;但只要总是反预测而行,就优于随机猜测。
  • AUC=0:模型的预测完全相反,把所有正样本预测为负例,把所有负样本预测为正例
    下图为以上五种情况对应的AUC值、ROC曲线和模型预测样本分布,其中模型预测样本分布中,横坐标表示模型输出的score,纵轴表示该预测值的样本数/总样本数
AUC与ROC

AUC与ROC

有关混淆矩阵,不同比值的含义

  1. \frac{TP}{TP+FN}:召回率,查全率,sensitivity,灵敏度,真正例率,TPR,含义:在所有负例中,有多少被识别为正例
  2. \frac{TP}{TP+FP}:精确率,在所有识别为正例的样本当中,有多少是真的正例
  3. \frac{TN}{TN+FP}:Specificity,特异度,真负例率,在所有负例当中,有多少是真的负例
  4. \frac{FP}{TN+FP}:假正例率,含义:在所有负例中,有多少被识别为正例

参考

如何理解机器学习和统计中的AUC?
如何深刻理解 AUC-ROC 曲线
micro, macro, weighted F1的计算

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容