zoukankan      html  css  js  c++  java
  • 分类任务评价指标(Accuracy / Precision / Recall / F1 / ROC / AUC)

    结果表示方法

    • TP – True Positive
    • FN – False Negative
    • TN – True Negative
    • FP – False Positive

    这里的T/F代表模型预测的正确/错误,而P/N则代表标签预测的是/否(即:正样本/负样本)

    常规指标的意义与计算方式

    我们先看分类任务的四个基本评价指标:

    • 准确率 - Accuracy

      • 正确样本 占 预测样本的百分比
      • Accuracy = (TP+TN)/(TP+TN+FP+FN)
    • 查准率 - Precision

      • 正确正样本 占 预测正样本的百分比
      • Precision = TP/(TP+FP)
    • 查全率 - Recall

      • 正确正样本 占 预测正确样本的百分比
      • Recall = TP/(TP+FN)
    • F1分数

      • 由于Precision和Recall是一对Tradeoff,因此我们可以通过F1来对二者进行综合
      • F1 = (2×Precision×Recall) / (Precision+Recall)

    以上四个指标在大多数场景下足以对分类模型做出准确的评估,但如果碰到一些特殊情况,那么上述指标的评估结果可能就会出现偏差,比如:当样本数据中的负样本占比远超正样本(这个场景在推荐任务中很常见)时,模型只要把输入样本全部分类为负样本,那么就能得到不错的准确率。针对这种情况,我们就需要引入一些更有针对性的评估指标,比如:ROC、AUC等

    在介绍ROC和AUC之前,我们先要引入两个概念:TPR和FPR

    • TPR(真正率)= TP/(TP+FN)
      • 正确样本中,正确正样本的占比
    • FPR(假正率)= FP/(FP+TN)
      • 错误样本中,错误正样本的占比

    TPR和FPR分别是以1和0作为评价基准的,所以有时可以更准确地反映分类模型的性能,接下来,我们介绍ROC、AUC:

    ROC和AUC

    ROC(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线。该曲线最早应用于雷达信号检测领域,用于区分信号与噪声。后来人们将其用于评价模型的预测能力,ROC 曲线是基于混淆矩阵得出的。

    ROC 曲线中的主要两个指标就是真正率和假正率。其中假正率(FPR)为横坐标,真正率(TPR)为纵坐标,如下图所示:

    查看源图像

    分类模型在测试集上每做一次测试,我们都能得到一组TP/FP/TN/FN数据,由这些数据我们只能计算出一个TPR-FPR值对,对应在ROC曲线图中就是一个点,因此,如果我们要得到完整的ROC曲线,就需要对模型不断地调参,让不同参数的模型分别在测试集上做测试,进而得到很多组TPR-FPR值对,把它们标到坐标系中,连起来,就是我们要的ROC曲线图了:

    查看源图像

    图中的点越接近坐标((0,1))就代表该模型性能越好

    AUC指的是ROC曲线下方的面积(Area Under Curve)。我们在ROC曲线图中经常会看到一条连接原点与((1,1))的辅助线,这条线其实就代表了随机预测模型的性能,其AUC值为0.5。ROC 曲线越陡越好,所以AUC的理想值就是 1,一个正方形,而最差的随机判断都有 0.5,所以一般 AUC 的值会介于 0.5 到 1 之间


    参考:

  • 相关阅读:
    几个shell自动化脚本(定期清理、磁盘空间、搜寻关键字)
    linux系统垃圾清理
    mysql出现Got error 28 from storage engine错误
    WebBindingInitializer学习
    Java多线程异步调度程序分析(二)
    自己封装的C#操作redis公共类
    Java多线程编程的常见陷阱(转)
    Java分布式优秀资源集合
    JVM GC之对象生死
    Java内存模型
  • 原文地址:https://www.cnblogs.com/lokvahkoor/p/15259047.html
Copyright © 2011-2022 走看看