机器学习中,最「简单」的一种任务就是二分类任务了。比如,说话人验证(speaker verification)就是一个二分类任务:判断一句话是否是给定说话人说的。再比如,信息检索(information retrieval)本质上也是一个二分类任务:给定关键词,判断每篇文章是否与关键词相关,并把相关结果排序返回。
许多二分类器的原理,都是给每个样例打一个分,然后设置一个阈值,分数高于阈值的样例就被分为正类,低于阈值则被分为负类。在评价系统性能时,一般可以计算准确率(accuracy),也就是分类正确的样例在所有样例中所占的比例。当两类分布不均衡时(一般是正例远少于负例),也常常计算正类的查准率(precision)、查全率(recall),以及二者的调和平均数 F1。
准确率、查准率、查全率、F1 这些指标,全都依赖于具体的阈值。但有时候,我们希望不把阈值固定,而是根据需求来调整。如图 0.1,把所有的样例按得分由高到低排序,得到一个有序列表(ranked list)。对于一个正常的二分类器,正例应该集中在列表的顶端,而负例应该集中在列表的底端,中间会有模糊地带。如果想追求高查准率,就可以把阈值调高,把中间地带排除出去;想追求高查全率,就可以把阈值调低,把中间地带包括进来。
在不固定阈值的情况下,要怎么评价一个二分类器的性能呢?这种评价,实质上就是评价上述的有序列表,能够在多大程度上把正例和负例分开。刻画正例和负例分得有多开,常常使用下面三种曲线:
● Precision-recall 曲线,简称 P-R 曲线;
● Receiver operating characteristic 曲线,简称 ROC 曲线;
● Detection error tradeoff 曲线,简称 DET 曲线。
为了比较不同的二分类器,也需要用单个的数值作为指标来表征一个二分类器的性能,常用的指标包括 average precision(AP)和 area under the curve(AUC)。如果一个任务是由多个二分类子任务组成的,也常常计算各个子任务的 AP 或 AUC 的平均值,称为 mean average precision(MAP)和 mean area under the curve(MAUC)。
注意 AP、AUC 这类指标与准确率、F1 等指标的不同之处:准确率、F1 等依赖于阈值,刻画的是二分类器在特定工作点的性能;AP、AUC 则不依赖于阈值,刻画的是二分类器给出的有序列表的质量。
上面提到了 P-R、ROC、DET 三种曲线,以及 AP、AUC 两种指标。它们的计算方法都不是一句话能说清楚的,这也是初学者常常迷惑和混淆的地方。这一篇以及下一篇专栏,就来详解这些曲线和指标的计算方法,以及它们之间的关系。本篇讲曲线,下篇讲指标。
一、Precision-Recall 曲线
顾名思义,precision-recall 曲线表现的,就是查准率、查全率随阈值的变化。具体来说,它的纵轴是正类的查准率
● True positives(
● False negatives(
● False positives(
● True negatives(
并记正例、负例的总数为:
则 P-R 曲线的纵轴、横轴可以分别表示为:
仍以图 0.1 中的二分类器为例,我们来画一下它的 P-R 曲线。图 1.1 列出了把阈值设在所有可能位置时,正类查准率、查全率的数值。阈值大于 0.9 时,
把所有的
正常的 P-R 曲线,会集中在图像的右上角,在这个区域,正类的查准率和查全率都高。它的右端不会到达
从微观上看,P-R 曲线是锯齿状的。当阈值下调,跨越一个正例时,
二、ROC 曲线
ROC 曲线的全称叫 receiver operating characteristic curve。这个名字有点儿费解:怎么还跟信号接收机(receiver)有关呢?原来,ROC 曲线最早就是在二战中用来分析雷达接收机检测信号的能力的。
ROC 的纵轴叫作 true positive rate(
也就是说,ROC 曲线的纵轴其实就是正类的查全率,而横轴是 1 减去负类的查全率,也可以叫作负类的误查率。
仍以图 0.1 中的二分类器为例,阈值设在各个位置时,正类查全率
同样把
正常的 ROC 曲线,会集中在图像的左上角,在这个区域,正类的查准率高,负类的误查率低。它的左、右两端一定会位于
ROC 曲线跟 P-R 曲线有什么关系呢?我们发现,ROC 曲线的纵轴,恰好就是 P-R 曲线的横轴,它们都是正类的查全率
此时两条曲线都集中在图像的右上角,宏观上呈单调下降趋势。旋转后的 ROC 曲线,其纵轴的含义是
在真实场景中,正例往往远少于负例。只要阈值不是设得极端低,一般都有
三、一些典型的 P-R 与 ROC 曲线
图 1.2 和图 2.2 展示了在一个小数据集上,P-R 曲线与 ROC 曲线都长成什么样子。那么在大数据集上,两种曲线又会长成什么样呢?下面展示几种典型情况,它们能够更好地体现两条曲线的宏观特征。
3.1 随机排序的情形
把所有的样例随机排序,可以作为二分类问题的一个 baseline。可以想象,当样例随机排序时,不管把阈值设在哪里,正类的查准率都会接近正类在所有数据中的比例(下记为
图 3.1 是把 2000 个正例和 8000 个负例随机排序后,绘制出的 P-R 曲线和 ROC 曲线,以及把 ROC 曲线顺时针旋转 90 度后的结果。除了 P-R 曲线的左端有较大波动以外,一切符合预期。
3.2 正、负类得分呈等方差高斯分布的情形
假设正类与负类各有 5000 个样例,且两类的得分都服从方差为 1 的高斯分布,均值之差为 2,如图 3.2:
这是一种比较真实的场景,在此场景下的 P-R 曲线与 ROC 曲线如图 3.3。P-R 曲线集中于右上角;ROC 曲线集中于左上角,顺时针旋转 90 度后则集中于右上角。
曲线有多么靠近相应的角落,与两类得分的分布分得多么开有关。在上面的例子里,两类得分的均值之差
上面的例子中,正例在所有数据中所占比例均为 50%。事实上,正例的比例对 P-R 曲线有较大的影响。图 3.5 展示了
我们还可以确认,当正例远少于负例时,旋转后的 ROC 曲线会高于 P-R 曲线,最右端除外。
3.3 正、负类得分呈不等方差高斯分布的情形
在这一小节,我们来观察一下,两类得分呈不等方差的高斯分布时,P-R 曲线和 ROC 曲线长成什么样子。设正、负类各有 5000 个样例,正类得分的均值为 1、方差为 1,负类得分的均值为 -2、方差为 4,如图 3.6:
此时的 P-R 曲线和 ROC 曲线如图 3.7。注意到 P-R 曲线不再呈单调下降的趋势,而是先升后降,这是因为负类的最高得分跟正类的最高得分差不多了,哪怕把阈值设得很高,也无法完全排除负类。这并不是「两类得分方差不等」的必然结果,而是依赖于分布的具体参数。另外可以注意到,与等方差的情形不同,ROC 曲线不再是关于对角线对称的了。
同样地,两类得分的分布分得越开,曲线就越靠近角落(图略);正例所占比例会影响 P-R 曲线(如图 3.7),但不会影响 ROC 曲线(图略)。
四、DET 曲线
从上一节的例子中可以发现,当二分类器的性能很好时,ROC 曲线会非常接近角落。如果要把多个二分类器的 ROC 曲线画在一个图中进行比较,往往会看不清,于是就有了 DET 曲线[1]。说话人验证就是一个常常使用 DET 曲线的领域,因为说话人验证系统的漏查率与误查率常常都只有 1% 左右。
DET 曲线的全名叫 detection error tradeoff curve,它表现的是「漏查」和「误查」两种错误的权衡。曲线的纵坐标是正类的漏查率,即
那么,横轴就表示 50% 的漏查率,而 20%、10%、5% 的漏查率则画在横轴往下 0.84、1.28、1.64 个单位长度的地方;同样地,纵轴表示 50% 的误查率,而 20%、10%、5% 的误查率则画在纵轴往左 0.84、1.28、1.64 个单位长度的地方。DET 曲线的坐标系如图 4.1 所示。由于漏查率和误查率一般都低于 50%,所以 DET 曲线往往只画出第三象限的部分。二分类器越好,DET 曲线越靠近左下角。
使用
图 4.2 展示的是两类得分服从等方差高斯分布时的 DET 曲线。两类得分的方差均为 1(
图 4.3 展示的是两类得分服从不等方差高斯分布时的 DET 曲线。图中正类得分固定服从
顺便说一下,二分类器的阈值使得正类漏查率与负类误查率相等时,这两个错误率称为等错误率(equal error rate,EER)。在 DET 曲线图上,做出对角线
本篇小结
- P-R 曲线的纵轴是正类的查准率
,横轴是正类的查全率。曲线宏观上单调递减,二分类器越好,曲线越靠近右上角。
- ROC 曲线的纵轴是正类的查全率
,横轴是负类的误查率。曲线宏观上单调递增,二分类器越好,曲线越靠近左上角。
- 把 ROC 曲线顺时针旋转 90 度,可以让它跟 P-R 曲线一样都以
为横轴,旋转后的 ROC 曲线的纵轴为负类的查全率。旋转后的 ROC 曲线整体上会高于 P-R 曲线,最右端除外。
- P-R 曲线会受正例在所有数据中所占比例的影响(正例越多,曲线越高),ROC 曲线不会。
- DET 曲线的纵轴是正类的漏查率
,横轴是负类的误查率,相当于把 ROC 曲线上下翻转。DET 曲线用函数对两个坐标轴进行了非线性伸缩,能够放大低错误率系统的差距;在两类得分服从高斯分布时,曲线将变成直线。DET 曲线宏观上单调递减,二分类器越好,曲线越靠近左下角。
参考
- ^https://apps.dtic.mil/dtic/tr/fulltext/u2/a530509.pdf