风控 “分箱算法”详解:等频等距分箱、决策树分箱、KS分箱、卡方分箱、最优分箱...

本文系东哥原创文章,100天风控节选内容,不支持任何转载,抄袭和侵权必究。

大家好,我是东哥。

信贷风控领域中,无论做策略规则还是模型,经常需要对变量进行分箱操作。而分箱的算法比较繁杂,本次就分享下常用的几种分箱算法,以及Python的代码实操,内容节选自👉《100天风控专家》。

首先直接亮出分箱算法的分类导图,然后分别介绍各个分箱算法。

1. 等频等距分箱

等频/等距分箱是最简单基础的分箱方式,定义如下:

  • 等频分箱:将整体样本量切成N等分,即每箱的样本数量相同。
  • 等距分箱:将变量按照固定的长度距离分箱,即每箱的区间范围大小相同。

2. 决策树分箱

决策树有常见以下三种算法:ID3、C4.5、CART,其中CART作为集中树的算法基础,是更为常用的,所以主要讲解CART算法。

1)CART(分类回归树)

CART是"Classification and Regression

Trees" 的缩写,意思是 "分类回归树 "。从它的名字上就不难理解了,CART算法是既可以用于分类的,也可以用于回归的。CART分类树算法使用"基尼系数(Gini)"选择特征,基尼系数代表了模型的不纯度,基尼系数越小,不纯度越低,特征越好。公式如下:

2)二分类的Gini系数

对于给定的样本集合D,其基尼指数定义为:

  • k:代表类别
  • C_k:代表D中属于第k类的样本子集

当CART 为二分类时,则在特征A的条件下,集合D的基尼指数定义为:

3)连续变量的基尼系数计算过程

对于连续型变量,假如变量a有连续值m个,从小到大排列。m个数值就有m-1个切分点,分别使用每个切分点把连续数值离散划分成两类,将分裂前数据集D按照划分点分为D1和D2两个子集,然后计算每个划分点下对应的基尼指数,选择值最小的一个作为最终的变量划分。

4)CART树用于分箱

通常CART用于构造一个模型或者寻找规则组合,此时有多个变量参与其中,每个分裂点所使用的变量根据基尼系数大小可能不同。而将CART应用在变量分箱时,变量只有一个,即每个分裂节点都只有同一变量,但由于分裂后的样本是分裂前的子集,使基尼系数最大的分裂点也会发生变化。


完整介绍和代码参考👉《100天风控专家

3. KS分箱

1)原理

通过KS指标可以求得让好坏客户分布差异最大化的分箱点,而BestKS分箱方法就是基于KS指标实现的。

2)计算步骤

以连续型变量X为例,其具体做法是:

①先対变量值进行排序

②计算每个变量值对应的KS

③选取KS最大所对应的变量值XT,然后以XT将当前样本划分为两部分(X<=XT)和 (X>XT)

④对于每个样本循环重复步骤2-3,直到触发了停止条件的任何一条

3)停止条件

停止条件就是让以上步骤不再继续分箱的条件,一般可以包括:

①划分以后每个分箱的样本量占比小于一定的阈值,比如5%

②划分以后每个分箱对应的y标签全部为好客户或者坏客户

完整介绍和代码参考👉《100天风控专家

4. 卡方分箱

1)卡法原理

卡方分箱是一种基于"卡方检验"的分箱方法,通过独立性检验来实现核心分箱功能。背后的基本思想是:如果两个相邻的区间具有非常类似的类分布,那么这两个区间可以合并。否则,它们应该分开。低卡方值表明它们具有相似的类分布。卡方分箱算法简单来说,有两个部分组成:

①初始化步骤

根据连续变量值大小进行排序

构建最初的离散化,即把每一个单独的值视为一个箱体。这样做的目的就是想从每个单独的个体开始逐渐合并。

②合并(自底向上的合并,直到满足停止条件)

计算所有相邻分箱的卡方值:也就是说如果有1,2,3,4个分箱,那么就需要绑定相邻的两个分箱,共三组:12,23,34。然后分别计算三个绑定组的卡方值。

从计算的卡方值中找出最小的一个,并把这两个分箱合并:比如,23是卡方值最小的一个,那么就将2和3合并,本轮计算中分箱就变为了1,23,4。

2)停止条件

①卡方停止的阈值

②分箱数目的限制

只要当所有分箱对的卡方值都大于阈值,并且分箱数目小于最大分箱数时,计算就会继续,直到不满足。这两个值根据我们的经验来定义,作为函数参数设置,一般推荐使用0.9,0.95,0.99的置信度,分箱数一般可以设置为5。

卡方分箱论文链接:https://sci2s.ugr.es/keel/pdf/algorithm/congreso/1992-Kerber-ChimErge-AAAI92.pdf

4)卡方分箱示例

举个例子说明一下这个公式是如何用的,对于相邻两个分箱的卡方值计算:

实际频数和期望频数都有了,带入卡方公式求解。如果计算结果是所有卡方值中最小的,说明:这组中两个分箱具有最相似的类分布,因此把它们合并

注意:卡方分箱计算较为复杂,如数据量大、变量多的情况下可能会非常耗时,不建议使用。

完整介绍和代码参考👉《100天风控专家

5. 最优分箱

1)Optbinning介绍

Optbinning开发了一种严谨且可扩展的数学规划公式。该通用公式能够高效地处理二进制、连续型和多类目标类型。对于这个三种目标类型,引入了一种"凸混合整数规划公式",从最简单的整数线性规划(ILP)公式到更复杂约束条件的混合整数二次规划(MIQP)公式不等。并且提出的公式不仅包含了通常用于生成良好分箱所需的约束条件,还涵盖了以前未处理的新约束条件。

2)Optbinning分箱步骤

最优分箱过程包含两个步骤:预分箱过程和优化过程,以满足施加的约束条件。

①预分箱过程:使用决策树算法来计算初始的分割点,得到的m个分割点按严格升序排列,即s1< s2 < ... < sm,以创建n= m + 1个预分箱。

②优化过程:通过各种约束条件来对分箱优化。不同目标类型约束条件不同,比如二分类约束条件包括:

a)单调性约束:三种单调趋势类型:上升/下降趋势,以及两种单峰形式,即凹/凸和峰/谷。

b)减少主导分箱:要求约束条件来限制分箱中(总/好/坏)的最大数量,防止任何一箱对结果产生过大的影响。也可以降低集中度指标(标准差、赫芬达尔-赫希曼指数以及最大分箱和最小分箱之间的差异)来生成更均匀的分箱。

c)最大p值约束:通过最大值p约束并确定一个显著性水平α,保证连续分箱之间具有统计学差异。比如统计检验方法包括Z检验、卡方检验等。

d)局部和启发式搜索的混合整数规划重制

官方教程链接:https://gnpalencia.org/optbinning/index.html

3)Optbinning代码实操

-- end

以上内容的完整讲解和数据代码(真实业务数据+代码实操)参考👉《100天风控专家》(共更新150期,涵盖业务、产品、策略、模型、数据等5大核心模块、10大专栏)

相关推荐
GawynKing3 个月前
使用 QLExpress 构建灵活可扩展的业务规则引擎
推荐系统·规则引擎·风控
程序员瓜叔4 个月前
实时反欺诈:基于 Spring Boot 与 Flink 构建信用卡风控系统
spring boot·后端·flink·风控
uncle_ll7 个月前
从 Credit Metrics 到 CPV:现代信用风险模型的进化与挑战
反欺诈·风控·金融风控·信用风控·风控建模
程序员瓜叔8 个月前
大数据风控系统——变量指标平台设计
java·大数据·风控
@黄色海岸10 个月前
【金融贷后】贷后运营精细化管理
数据分析·运营·风控·债务·贷后·催收·不良资产
uncle_ll1 年前
身份验证技术应用10大关键趋势
网络·安全·身份验证·风控
uncle_ll1 年前
风控领域特征工程
机器学习·特征·建模·特征工程·风控
码头工人1 年前
【架构师视角系列】风控场景下配置中心的设计思考
配置中心·风控
无奈何杨1 年前
风控系统建设,指标策略规则流程设计,LiteFlow隐式子流程,构造EL和Chain
规则引擎·策略·liteflow·风控