评估与指标

ROC曲线(ROC curve)

/ AR-oh-SEE kurv /

大多数分类器并不是简单地说「是」或「否」——它们输出一个分数,比如「73%的可能是垃圾邮件」。要做出判断,你得挑一个阈值:高于它,就判为垃圾。ROC曲线展示的,是当你把这个阈值从严格滑到宽松时,你那两种错误率会发生什么变化。它是一张把所有可能阈值一次性画在一起的图。

在曲线上,纵轴是真正例率(即召回率——你抓到的真实正例的比例),横轴是假正例率(你错误地标出的真实反例的比例)。一个完美的模型会紧贴左上角:抓住一切真实的,同时不拉响任何误报。一个纯靠瞎猜的模型,则会描出从一角到另一角的那条对角线。你的曲线越是向左上角那个角拱起,它把两个类别分开的能力就越强。

这个名字是战时的遗留物——「受试者工作特征」(receiver operating characteristic)源自1940年代的雷达,当年操作员要调节自己「多大程度上愿意把一个光点叫做敌机」。诚实的提醒是:即便在严重不平衡的数据上,ROC曲线也可能看起来令人安心地好,因为假正例率有一个庞大的反例分母把它稀释了。当正类稀有而珍贵时——欺诈、疾病——精确率-召回率曲线通常讲出一个更真实的故事。

一步步调低垃圾邮件的判定阈值。在很严格的设置下,你抓到50%的垃圾邮件,误报率1%(左下方)。把它放宽,你能抓到90%的垃圾,但此时有20%的真邮件被误标了(右上方)。每一种设置对应一个点;把它们全描出来,就画出了ROC曲线。

一条曲线,概括了每一个阈值下「召回 对 误报」的权衡。

一个常见的陷阱:人们在稀有事件问题上引用ROC AUC,而那恰恰会美化模型。在千分之一的欺诈任务上,一个模型可以画出漂亮的ROC曲线,实际用起来精确率却惨不忍睹。要让所选曲线匹配事件的基础发生率。

又称
ROC曲线ROC曲線受试者工作特征曲线receiver operating characteristic curve