P-R曲线
即Precision-Recall曲线
P=TP/(TP+FP) ,P是代表预测为真且真实为真的数据占预测为真数据的比例。
R=TP/(TP+FN),R是代表预测为真且真实为真的数据占真实为真数据的比例
ROC曲线
即Receiver Operating Characteristic Curve曲线,横坐标为假阳率(False Positive Rate,FPR),纵坐标为真阳率(True Positive Rate,TPR)
P-R与ROC对比
相比P-R曲线,ROC曲线有一个特点,当正负样本的分布发生变化时,ROC曲线的形状能够基本保持不变,而P-R曲线的形状一般会发生较剧烈的变化。
这个特点让ROC曲线能够尽量降低不同测试集带来的干扰,更加客观的衡量模型本身的性能。
比如在很多实际问题中,正负样本数量往往恨不均衡,比如计算广告领域经常涉及转化率模型,正样本数量往往是负样本数量的1/1000甚至1/10000,若选择不同的测试集,P-R前变化就会非常大,而ROC曲线则能更加稳定的反映模型本身的好坏。所以ROC曲线的使用场景更多,被广泛用于排序、推荐、广告等领域。
但是需要注意的是,选择P-R还是选择ROC是因实际问题而异。如果研究者希望更多的看模型在特定数据集上的表现,P-R曲线则能够更直观的反映其性能。
ROC曲线的由来:
ROC曲线最早是运用在军事上,后来逐渐运用到医学领域。相传在第二次世界大战期间,雷达兵的任务之一就是死死地盯住雷达显示器,观察是否有敌机来袭。理论上讲,只要有敌机来袭,雷达屏幕上就会出现相应的信号,但是实际上,有时如果有飞鸟出现在雷达扫描区域时,雷达屏幕上有时也会出现信号。这种情况令雷达兵烦恼不已:如果过于谨慎,凡是有信号就确定为敌机来袭,显然会增加误报风险;如果过于大胆,凡是信号都认为飞鸟,又会增加漏报的风险。每个雷达兵都竭尽所能地研究飞鸟信号和飞机信号之间的区别,以便增加预报的准确性。但问题在于,每个雷达兵都有自己的判别标准,有的雷达兵比较谨慎,容易出现误报;有的雷达兵则比较胆大,容易出现漏报。
为了研究每个雷达兵预报的准确性,雷达兵的管理者汇总了所有雷达兵的预报特点,特别是他们漏报和误报的概率,并将这些概率画到一个二维坐标里面。这个二维坐标的纵坐标为敏感性,即在所有敌机来袭的事件中,每个雷达兵准确预报的概率。而横坐标则为特异性,表示了在所有非敌机来袭信号中,雷达兵预报错误的概率。由于每个雷达兵的预报标准不同,且得到的敏感性和特异性的组合也不同。将这些雷达兵的预报性能进行汇总后,雷达兵管理员发现他们刚好在一条曲线上,这条曲线就是我们经常在医学杂志上看见的ROC曲线。