首页 > Python机器学习 阅读数:28

P-R曲线是什么

在分类时,我们经常需要对学习模型的预测结果进行排序,排在前面的被认为“最可能”是正类样本,排在后面的被认为“最不可能”是正类样本。因此我们往往要在中间设定一个临界值(Threshold),当预测值大于这个临界值时,样本为正类样本,反之为负类样本。

按不同的临界值,将每个样本作为正类样本来预测,就会得到不同的查准率和查全率。如果以查准率为纵轴,以查全率为横轴,那么每设定一个临界值,就可以在坐标系上画出一个点。当设定多个临界值时,就可以在坐标系中画出一条曲线。这条曲线便是 P-R 曲线,如图 1 所示。

P-R曲线
图 1:P-R 曲线
 
P-R 曲线能直观地显示分类算法在整体上的查准率和查全率。当对多个分类算法进行比较时,如果算法 1 的 P-R 曲线完全“外包围”算法 2 的 P-R 曲线,那么处于外侧的算法 1 有着更高的查准率和查全率(双高),这说明算法 1 比算法 2 有着更好的分类性能。

但更一般的情况是,算法之间的 P-R 曲线彼此犬牙交错(见图 1),很难断言二者孰优孰劣,只能在具体的查准率和查全率下做比较。但倘若非要比个高下,该怎么办呢?比较稳妥的办法是比较 P-R 曲线下的面积大小,谁的面积大,从某种程度上就说谁的“双高”比例大,即性能更优。但这个面积不容易估算,因此人们设计了一些综合考虑查准率和查全率的度量标准。

平衡点(Break-Even Pont,简称 BEP)就是这样的度量标准。当 P=R(可视为一条夹角为 45° 的直线)时,这条直线与各个分类算法的 P-R 曲线会产生交点(即 BEP),哪个算法的 BEP 值更大,那个算法的分类性能就更优。比如说,在图 1 中,算法 2 的 BEP 大于算法 1 的 BEP,那么可以说,在某种程度上,算法 2 的性能优于算法 1。

P-R 曲线的优点是直观,缺点是受样本分布(如正类与负类的占比)的影响较大。相比而言,ROC 曲线则有更多的优点,因此经常作为二值分类器性能评估的重要指标之一。下节就来讨论一下 ROC 曲线,以及与其密切相关的 AUC。