精确率-召回率曲线(precision-recall curve)
/ pruh-SIZH-un ree-KAWL kurv /
和ROC曲线一样,精确率-召回率曲线描绘的,是当你把分类器的判定阈值从严格滑向宽松时所发生的事。但它画的,是当你要找的东西很稀有时你最常在意的那两个量:纵轴是精确率(它说「是」时,有多大比例是对的),横轴是召回率(在所有真实正例里,它抓住了多少)。
把它当作一个关于妥协的故事来读。设一个严格的阈值,你会非常精确但抓得很少(高精确率、低召回率——最左端)。放宽些,你抓得更多,却也放进了更多误报(召回率上升,精确率通常下垂——最右端)。一个强模型即便召回率上去了也能让精确率保持得高,所以它的曲线一直靠在顶部附近。一个没用的模型,它的曲线则平平地躺在基础发生率的高度上——也就是「正例占全部样本的简单比例」那条线。
为什么宁可用它而不用ROC?因为它不包含真反例,所以不会被一大片容易的反例蒙骗。在千分之一的欺诈问题上,ROC可能看起来辉煌,精确率却惨不忍睹;PR曲线会把那惨淡的精确率明明白白地摆出来。这就使得PR曲线,以及概括它的PR-AUC,在「正类稀有、误报代价真实」时成为更诚实的选择。唯一的小麻烦是:PR曲线的高度取决于基础发生率,所以你不能在正例比例不同的数据集之间去比较PR-AUC。
在一个只有2%案例为正例的数据集里,随机模型的PR曲线平平地躺在精确率0.02的高度。一个有用的模型会把曲线远远抬到那条线之上。同一个模型的ROC曲线也许看着很棒,AUC高达0.9——而PR视角则揭穿了它真实精确率有多么单薄。
在稀有事件数据上,PR曲线会暴露出被ROC掩盖的薄弱精确率。
PR曲线上「无技巧」的基线,是一条位于正例基础发生率高度的水平线,而不是ROC里那条0.5的对角线。如果你的PR曲线几乎只比那条平线高出一点点,那么你的模型几乎什么有用的东西都没学到——哪怕它的准确率看起来很高。