ROC 曲线是什么?衡量分类模型在各种阈值下的区分能力
受试者工作特征曲线(Receiver Operating Characteristic Curve,简称 ROC 曲线)是一种用来评估二分类模型性能的图形工具。它展示的是:当判定阈值从高到低变化时,模型的真阳性率和假阳性率是如何变化的。ROC 曲线下的面积,也就是 AUC,是机器学习中最常用的分类评价指标之一。
名字的由来
ROC 曲线最早出现在第二次世界大战期间,用于分析雷达接收机的信号检测能力:雷达操作员需要从屏幕上的信号中判断出是敌机还是噪声,判断标准定得太松,会产生很多误报;定得太严,又可能漏掉真正的敌机。“接收者工作特征”这个名字就来自这里,中文通常译为“受试者工作特征”。后来,它被引入心理学、医学诊断,再到机器学习领域。
为什么需要阈值
很多分类模型并不直接给出“是”或“否”的判断,而是给出一个分数或概率,比如“这封邮件有 70% 的可能是垃圾邮件”。要得到最终的判断,需要设定一个阈值:分数高于阈值就判为阳性,低于阈值就判为阴性。阈值的选择会影响结果:阈值设得低,会有更多的样本被判为阳性,真正的阳性样本更容易被找出来,但也会把更多的阴性样本误判为阳性;阈值设得高,误报会减少,但会漏掉更多真正的阳性样本。
ROC 曲线怎么画
ROC 曲线的纵轴是真阳性率,也叫召回率或灵敏度,表示实际为阳性的样本中有多少被正确地找了出来;横轴是假阳性率,表示实际为阴性的样本中有多少被错误地判为了阳性。把阈值从最高逐渐调到最低,每一个阈值都会得到一对真阳性率和假阳性率,在图上就是一个点,把这些点连起来就形成了 ROC 曲线。曲线总是从左下角的点出发,阈值最高时,所有样本都判为阴性,真阳性率和假阳性率都是零;到右上角的点结束,阈值最低时,所有样本都判为阳性,两者都是一。
怎么看 ROC 曲线
一个完美的模型,曲线会直接从左下角升到左上角,再水平延伸到右上角,也就是能在完全没有误报的情况下找出所有的阳性样本。一个随机乱猜的模型,曲线就是从左下角到右上角的那条对角线。曲线越靠近左上角,模型的区分能力越强。
曲线下的面积 AUC,提供了一个单一的数字来概括模型的整体表现:AUC 等于 1 表示完美的模型,等于 0.5 相当于随机猜测,小于 0.5 说明模型比瞎猜还差。AUC 还有一个直观的含义:随机抽取一个阳性样本和一个阴性样本,模型给阳性样本打的分数高于阴性样本的概率。AUC 的好处是不依赖于某个具体的阈值,便于比较不同的模型。
注意事项
当正负样本的数量极不均衡时,比如欺诈交易只占所有交易的千分之一,ROC 曲线可能会显得过于乐观,因为大量的阴性样本让假阳性率看起来很低。这时,精确率-召回率曲线往往能更好地反映模型的实际表现。另外,在实际应用中选择阈值时,还需要考虑误报和漏报各自的代价:在癌症筛查中,漏诊的代价很高,宁可多一些误报;而在垃圾邮件过滤中,把重要的邮件误判为垃圾邮件的代价更高。