CAP(Cumulative Accuracy Profile)曲线/AR值释义

CAP(Cumulative Accuracy Profile)曲线/AR值释义

CAP(Cumulative Accuracy Profile)曲线以及对应的AR(Accuracy Ratio)值是金融风控模型评价中的一个比较常用的指标,由于和机器学习准确率评价的ROC曲线比较类似,但CAP曲线的具体含义尚未见到有比较好的资料阐述,因此这里对CAP的概念做一详细说明。

首先,来讲一下CAP曲线针对的问题,以及它是如何做出来的。CAP衡量的是风控模型检出风险(也就是坏用户的)的能力。所谓风控模型实际上就是一个分类模型,它把有风险的客户作为正例进行检出。

CAP曲线的步骤如下:首先,对于所有预测的结果,按照其概率值降序排列起来,比如我们有5个客户,判断其为坏客户的概率分别为:[0.1,0.4,0.6,0.8,0.9],那么排序后得到 [0.9,0.8,0.6,0.4,0.1]。我们将概率大的判断为正样本,但是需要一个阈值,那么我们就从高到低逐渐降低阈值,这时候发现,我们判断为正的数量越来越多,比如,阈值再0.85,则正的只有一个0.9,如果阈值降低到0.7,那么就有0.9和0.8两个正的预测。

CAP的横轴就是从排序后概率值头部到尾部的移动过程中,阈值以上的(预测为正的)样本占总样本的比例。写出来就是:

x = 该阈值下预测为正的样本数 / 样本集中的总样本数

而CAP的纵轴表示的则是,再当前阈值下,我们拣选出来的这些预测为正的样本中,其中含有的真实的正样本占所有正样本的比例。注意,这里的分母不是所有样本,而是所有正样本。写出来就是:

y = 该阈值下检出的正样本中真实的正样本数 / 样本集合中的总正样本数

这里可以看出,阈值实际上是x和y的一个隐变量。

我们想象一下,最好的情况是:我们将阈值从最大往最小移动,即将正负样本的划分界限从左往右移动的过程中,每增加一个预测为正的样本,它都是真的正样本。这样的结果就是:x和y的分子是一致的,那么随着阈值降低,y和x 的斜率就是一个常数:

k = y/x

= (该阈值下检出的正样本中真实的正样本数 / 样本集合中的总正样本数) * (样本集中的总样本数/该阈值下预测为正的样本数 )

= 样本集中的总样本数/样本集合中的总正样本数

=1/坏客户比率

也就是说,再理想状态下,CAP曲线应该是一个斜率为坏客户比例倒数(正样本比例的倒数)的直线。当然,这个直线不能一直递增,因为正样本是有限的,那么当所有正样本都被检出后,曲线就平了,表示再也剪不出正样本了。

我们再考虑另一种情况,也就是最差的情况。由于斜率表示的是每次增加一点检出样本,正样本的检出率增加量。如果是随机的,也就意味着,不管在那个小区间里,正样本的比例和总体的正样本比例都是一样的(随机猜测)。所以,这个斜率应该是1。比如说,100个样本中,一共20个正例,那么如果我们检出了30个,那么如果是随机猜测,那么应该有6个正例在里面,此时x = 30/100 = 0.3, y = 6/20 = 0.3。斜率是1。也就是说,斜率1是随机猜测的结果。

如图所示:

CAP(Cumulative Accuracy Profile)曲线/AR值释义

实际情况中,我们的模型总是介于最优和随机之间的,而且越是靠近最优就越好。因此我们通常计算上图中黄色的面积与(黄色+灰色)的面积的比来衡量模型的有效性。这个值就是AR:

AR = (实际CAP曲线与随机曲线之间的面积) / (理想CAP曲线与随机之间的面积)

显然,AR在0到1之间。AR越大,模型就越有区分度,可以更好地将正负样本分开。

2019-08-29 20:51:32