qu-fen-du-ping-gu-zhi-680728-ks.md
August 14, 2022 · View on GitHub
区分度指标(KS)
Part 1. 直观理解区分度的概念
在探索性数据分析(EDA)中,若想大致判断自变量x对于因变量y有没有区分度,我们常会分正负样本群体来观察该变量的分布差异,如图1所示。那么,如何判断自变量是有用的?直观理解,如果这两个分布的重叠部分越小,代表正负样本的差异性越大,自变量就能把正负样本更好地区分开。
打个比方,想象这个变量就是一双手,把这两个分布往两边拉开。这双手的力量越大,两个概率分布间隔就越远,说明变量区分性就越好。

图 1 - 正负样本变量分布差异对比
Part 2. KS统计量的定义
KS(Kolmogorov-Smirnov)统计量由两位苏联数学家A.N. Kolmogorov和N.V. Smirnov提出。在风控中,KS常用于评估模型区分度。区分度越大,说明模型的风险排序能力(ranking ability)越强。
KS统计量是基于经验累积分布函数(Empirical Cumulative Distribution Function,ECDF)
建立的,一般定义为:
(1)ks=max{|cum(bad_rate)−cum(good_rate)|}
Part 3. KS的计算过程及业务分析
很多博客文章告诉我们,计算KS的常见方法是这样的:
- step 1 . 对变量进行分箱(binning),可以选择等频、等距,或者自定义距离。
- step 2 . 计算每个分箱区间的好账户数(goods)和坏账户数(bads)。
- step 3 . 计算每个分箱区间的累计好账户数占总好账户数比率(cum_good_rate)和累计坏账户数占总坏账户数比率(cum_bad_rate)。
- step 4 . 计算每个分箱区间累计坏账户占比与累计好账户占比差的绝对值,得到KS曲线。也就是:ks=|cum_goodrate-cum_badrate|
- step 5. 在这些绝对值中取最大值,得到此变量最终的KS值。
为帮助大家理解,现以具体数据(非业务数据)展示这一过程,如图2所示。其中,total是每个分数区间里的样本量,total_rate为样本量占比;bad代表逾期,bad_rate为每个分数区间里的坏样本占比。

图 2 - KS计算过程表
那么,分析这张表我们可以得到哪些信息呢?
- 模型分数越高,逾期率越低,代表是信用评分。因此,低分段bad rate相对于高分段更高, cum_bad_rate曲线增长速率会比cum_good_rate更快,cum_bad_rate曲线在cum_good_rate上方。
- 每个分箱里的样本数基本相同,说明是等频分箱。分箱时需要考虑样本量是否满足统计意义。
- 若我们设定策略cutoff为0.65(低于这个值的用户预测为bad,将会被拒绝),查表可知低于cutoff的cum_bad_rate为82.75%,那么将拒绝约82.75**%**的坏账户。
- 根据bad_rate变化趋势,模型的排序性很好。如果是A卡(信用评分),那么对排序性要求就比较高,因为需要根据风险等级对用户风险定价。
- 模型的KS达到53.1%,区分度很强。这是设定cutoff为0.65时达到的最理想状态。实际中由于需权衡通过率与坏账率之间的关系,一般不会设置在理想值。因此,KS统计量是好坏距离或区分度的上限。
- 通常情况下,模型KS很少能达到52%,因此需要检验模型是否发生过拟合,或者数据信息泄漏 。
KS值的取值范围是**[0,1]**,一般习惯乘以100%。通常来说,KS越大,表明正负样本区分程度越好。KS的业务评价标准如图3所示。由于理解因人而异,不一定完全合理,仅供参考。

图 3 - KS的评价标准(供参考)
需要指出的是,KS是在放贷样本上评估的,放贷样本相对于全量申贷样本永远是有偏的。如果风控系统处于裸奔状态(相当于不生效,随机拒绝),那么这个偏差就会很小;反之,如果风控系统做得越好,偏差就会越大。因此,KS不仅仅只是一个数值指标,其背后蕴藏着很多原因,值得我们结合业务去认真分析。
当KS不佳时,为了达到KS的预期目标,我们可以从哪些方面着手去优化呢?一般建议如下:
- 检验入模变量是否已经被策略使用,使用重复变量会导致区分度不高。
- 检验训练样本与验证样本之间的客群差异是否变化明显?样本永远是统计学习中的重要部分。
- 开发对目标场景更具针对性的新特征。比如,识别长期信用风险,就使用一些强金融属性变量;识别欺诈风险,就使用一些短期负面变量。
- 分群建模或分群测算。分群需要考虑稳定性和差异性。
- bad case分析,提取特征。
若将表2数据可视化,就可以得到我们平时常见的KS曲线图(也叫鱼眼图 ),其中横坐标为模型概率分数(0~1),纵坐标为百分比(0~100%)。红色曲线代表累计坏账户占比,绿色曲线代表累计好账户占比,蓝色曲线代表KS曲线。

图 4 - KS曲线
至此,我们已经基本了解KS的计算流程、评价标准、业务指导意义和优化思路。接下来,再给大家留下几个思考题 :
- 为什么风控中常用KS指标来评价模型效果,而不用准确率、召回率等?
- 最大KS值只是一个宏观结果,那么在不同cutoff内取到max时,模型性能有什么差异?
- 一般情况下,KS越大越好,但为什么通常认为高于75%时就不可靠?