采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
PR曲线对偏斜数据更敏感,那为什么不选择用PR曲线而要使用ROC曲线呢?选择的标准是什么?
首先需要明确一点:在机器学习领域,对于指标,很多时候不是选择谁的问题,而是在可能的情况下,所有的指标都应该看一看,以确定训练的模型是否有问题。这就好比在医院检查身体,不是先确定要看哪个指标,然后就只看这个指标;而是尽可能去看所有指标。因为任何一个指标存在问题,都可能意味着你的身体的某个机能存在问题。
所以,我们的目的不是“找到”单一的“最好”的指标;而是了解所有的指标背后在反映什么,在看到这个指标出现问题的时候,能够判断问题可能出现在哪里,进而改进我们的模型。虽然我们的改进方向可能是单一的。这就好比在医院看病,我们主要症状可能是发烧,此时,我们的主要异常指标是“温度”,所以我们主要尝试使用可以“降温”的治疗手段,但这不代表我们在治疗的过程中对其他指标不管不顾,只要把温度降到正常水平就可以了。在尝试“降温”的过程中,如果我们发现血压,心跳,白血球,红血球,任何一个指标出现异常,我们都需要马上做出相应的反应。
具体到PR曲线和ROC曲线,他们的核心区别在TN。可以看出来,PR曲线其实不反应TN。所以,如果你的应用场景中,如果TN并不重要,那么PR曲线是一个很好的指标(事实上,Precision和Recall就是通过抹去TN,来去除极度的偏斜数据带来的影响,进而放大FP, FN和TP三者的关系的)。
而ROC曲线则综合了TN, FP, FN和TP。虽然它对TN极度多的情况下,FP,FN和TP的变化不敏感。所以在TN没有那么多(数据没有那么偏斜),或者TN是一种很重要的需要考虑的情况下,ROC能反映出PR不能反映的问题。
非常感谢!
也有相同的问题,之前看PR曲线和ROC(Receiver Operation Characteristic Curve)曲线没有理解(接收操作特征曲线?),感觉计算面积都差不多。 在机器学习领域,对于指标,很多时候不是选择谁的问题,而是在可能的情况下,所有的指标都应该看一看,以确定训练的模型是否有问题。感觉用看病检查来类比,很好理解了,感觉是因为我们对数据根本无法完全理解,只能通过指标来判断,然后学到模型也只是局部的,所以尽可能多地观察指标。 数据很偏斜的时候,TN会很大,意思就是样本绝大部分都是没问题的,此时TN应该不需要考虑。如果不是偏斜数据,TN不会很大,此时TN需要考虑,什么时候TN是一种很重要的需要考虑的情况?
当我们对正确的预测“0”的出现也很在意的时候。这样的例子非常多。随便举一例,对于股票预测(或者经济预测),我们不仅需要正确的预测上升期,也需要正确的预测衰退期。
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.4k 19
3.4k 17
2.9k 15
1.6k 15
1.4k 14