zoukankan      html  css  js  c++  java
  • 【ML基础】PR/ ROC 等评价指标

    准确率/精确率/召回率/查准率/查全率/真正率/假正率。。

    TP/TN/FP/FN/TPR/FPR

    F1-Score

    PR:Precision-Recall

    ROC:TPR-FPR

    AUC:ROC;

    准确率 Accuracy

    正确分类的样本数与总样本数之比(预测对的总样本 / 总总样本数)

    精确率 Precision

    判定为正例中真正正例数与判定为正例数之比(预测满足指标的样本中有多少是预测正确的)

    召回率 Recall

    被正确判定为正例数与总正例数之比 (实际满足指标的样本中有多少被正确预测)

    recall 和 precison 都是针对二分类的,所以如果有多个类别则需分别计算;

    
    
    

    问题源自:如何判断一个数据集正负样本是均衡的?

    PR和ROC在面对不平衡数据时的表现是不同的。在数据不平衡时,PR曲线是敏感的,随着正负样本比例的变化,PR会发生强烈的变化。而ROC曲线是不敏感的,其曲线能够基本保持不变。

    ROC的面对不平衡数据的一致性表明其能够衡量一个模型本身的预测能力,而这个预测能力是与样本正负比例无关的。但是这个不敏感的特性使得其较难以看出一个模型在面临样本比例变化时模型的预测情况。而PRC因为对样本比例敏感,因此能够看出分类器随着样本比例变化的效果,而实际中的数据又是不平衡的,这样有助于了解分类器实际的效果和作用,也能够以此进行模型的改进。

    综上,在实际学习中,我们可以使用ROC来判断两个分类器的优良,然后进行分类器的选择,然后可以根据PRC表现出来的结果衡量一个分类器面对不平衡数据进行分类时的能力,从而进行模型的改进和优化。

    real world data经常会面临class imbalance问题,即正负样本比例失衡。根据计算公式可以推知,在testing set出现imbalance时ROC曲线能保持不变,而PR则会出现大变化。

    PRC相对的优势

    当正负样本差距不大的情况下,ROC和PR的趋势是差不多的,但是当负样本很多的时候,两者就截然不同了,ROC效果依然看似很好,但是PR上反映效果一般。解释起来也简单,假设就1个正例,100个负例,那么基本上TPR可能一直维持在100左右,然后突然降到0。这就说明PR曲线在正负样本比例悬殊较大时更能反映分类的性能。

        在正负样本分布得极不均匀(highly skewed datasets)的情况下,PRC比ROC能更有效地反应分类器的好坏。

    二分类:

    语义分割二类:

    假设只有一个要分割的类别,由于语义分割是像素级别的分类任务,可以使用分类的混淆矩阵求解PR。

    遍历预测图的所有像素位置,假设分类的阈值为0.5,那么预测值大于0.5的位置为前景,否则为背景。将所有位置的预测结果与真实分割图(真实分割图的前景为正样本,背景为负样本)对比,即可得到每个位置是TP,FP,FN或TN,即可求出P,R,F1。

    也就是一个阈值,对应一个PR曲线,那么如何选取合适的阈值呢?这个是错误的吧?

    通过train_loss和valid_loss可以查看拟合情况;
    通过测试不同阈值,可以得到一个模型的PR曲线,根据不同模型的PR曲线,可以选择最优模型;
     
    一个阈值对应PR曲线上的一个点。通过选择合适的阈值,比如50%,对样本进行划分,概率大于50%的就认为是正例,小于50%的就是负例,从而计算相应的精准率和召回率。(选取不同的阈值,就得到很多点,连起来就是PR曲线)


    多分类呢?

    检测任务的PR

    ref:

    1.

    https://blog.csdn.net/guzhao9901/article/details/107961184

    2.

    https://www.cnblogs.com/laozhanghahaha/p/12383363.html

    3.

    https://blog.csdn.net/weixin_31866177/article/details/88776718

    4.

    https://www.cnblogs.com/laozhanghahaha/p/12374027.html

    5.检测

    https://blog.csdn.net/u014453898/article/details/108210508

    6. 

    性能评估之PR曲线与ROC曲线

    做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
    版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
  • 相关阅读:
    MySQL中文显示乱码
    mysql 存储引擎 InnoDB 与 MyISAM 的区别和选择
    mysql 分表的3种方法
    mysql 清空或删除表数据后,控制表自增列值的方法
    MySQL 下优化SQL语句的一些经验
    mysql 常用命令
    MySQL获得指定数据表中auto_increment自增id值的方法及实例
    SQL Server Alwayson创建代理作业注意事项
    LinkedList子类与Queue接口
    List接口
  • 原文地址:https://www.cnblogs.com/happyamyhope/p/15132261.html
Copyright © 2011-2022 走看看