. 上篇讲解了 P-R、ROC、DET 三种曲线,本篇来讲解 AP、AUC 两种指标。指标的作用,就是用一个数字衡量二分类器的好坏,便于对不同的二分类器进行比较。本篇会讲解 AP、AUC 两种指标的定义,它们与各种曲线的关系,以及如何准确、高效、简洁地编程计算两种指标。
五、Average Precision(AP)指标
AP 指标的定义是这样的:把阈值设置在紧靠每个正例之下,计算正类的查准率
,再取平均值。沿用上篇开头的例子:图 5.1:计算 AP 指标的一个例子
把阈值设置在紧靠第 1、2、3、4 个正例之后,正类的查准率分别是 1、1、0.6、0.5,所以 AP 指标等于
。
如果有多个正例的得分相同,那么阈值设置在紧靠它们之下时的查准率,在取平均时也会被计算多次。比如,如果图 5.1 中得分为 0.6 的两个样例都是正例,那么 AP 就会变成
。
有些任务可以分解成多个二分类子任务。比如我的博士课题「声音事件检测」,每条录音里可能有多种声音事件,所以可以看成是对每一种事件进行二分类。要用一个数字来衡量这种系统的性能,可以对每一种事件计算 AP,然后再取平均值,结果称为 mean average precision(MAP)。这里的 mean 和 average 的对象不同:average 是对阈值设在各个位置时的查准率求平均,而 mean 是对各个子任务求平均。
AP 指标跟 P-R 曲线有着微妙的关系。对于图 5.1 中的例子,我们标出阈值设置在紧靠每个正例之后时,P-R 曲线上对应的点。可以发现,AP 指标等于图中浅蓝色部分的面积。这个面积跟 P-R 曲线下的面积非常接近,只是差了几个小三角形。当数据量大了的时候,这些小三角形的面积就可以忽略不计了,所以可以说,AP 约等于 P-R 曲线下的面积。图 5.2:AP 等于浅蓝色部分的面积,约等于 P-R 曲线下的面积
AP 还可以不严格地写成积分的形式:
。这个积分式能够体现 AP 的定义:阈值下移时,每越过一个正例,就让正类的查全率增加一点儿(
);这些时候的正类查准率
的平均值就是 AP。当然,也可以反过来把积分式写成
,不过这就更不严格了,因为 P-R 曲线并不一定是单调递减的,同一个
可能对应着多个
。另外,P-R 曲线的最右端
并没有下降至 0,而是只下降到正例所占比例
。在积分式中,
小于
时,