分箱

480 阅读2分钟

分箱介绍

  • 涵义:将特征的取值按照某种规则进行分类,将特征的取值精度由细变粗。

  • 意义:增加稳健性,减少过拟合风险

    • 对取值很多的类别型(离散型)变量:利用独热编码方式将会大大增加特征维度。
    • 如果一个特征的取数很多的时候,独热编码后的纬度就会很高,可能会导致过拟合风险

    • 对连续型变量:利用分箱做特征处理会增加后续建模(尤其是使用逻辑回归这类线性算法)的稳健性。
    • 解决了缺失值:在分箱中,缺失值会单独成为一个类别。如果缺失机制是非随机缺失,那么这个特征是非常有用的。
    • 解决了异常值:分箱在一定程度上能将削弱异常值所带来的影响,因为异常值可以和其他值合并作为一个箱。
  • 分箱的准则

    • 分箱对象

      • 取值较多的类别型变量&数值型变量
    • 有序型

      • 有序型变量的分箱一一般也需要保持有序型
    • 单调或U型

      • 有序型变量的分箱一般也需要违约率呈现单调或U型
    • 平衡性

      • 更严格地说,我们会希望分箱后的每一箱的占比不能相差太大
    • 分箱数量

      • 数量不宜过多,5-7个为宜

分箱的方法

非监督方法

  • 等宽、等频、聚类;
  • 优点:计算简单
  • 缺点:未利用目标变量

监督方法

  • 卡方分箱法、决策树分箱法、bestKS;
  • 优点:考虑了目标变量
  • 缺点:计算量大

卡方分箱

什么是卡方分箱

思想:对有序型变量,通过卡方值找到两个类分布最相似的分箱进行合并

卡方值的计算:

类别1类别2\sum
分箱1A11A_{11} A12A_{12}R1R_1
分箱2A21A_{21}A22A_{22}R2R_2
\sum C1C_1C2C_2NN

AijA_{ij}=分箱i在类别j下的样本观察频数

EijE_{ij} =分箱i在类别j下的样本期望频数RiCjN\frac{RiCj}{N}

类别1类别2
分箱1E11=R1C1NE_{11}=\frac{R_1C_1}{N} E12=R1C2NE_{12}=\frac{R_1C_2}{N}
分箱2E21=R2C1NE_{21}=\frac{R_2C_1}{N} E22=R2C2NE_{22}=\frac{R_2C_2}{N}

χ2=i=1mj=1k(AijEij)2Eij\chi^2=\displaystyle\sum_{i=1}^m\displaystyle\sum_{j=1}^k\frac{(A_{ij}-E_{ij})^2}{E_{ij}} (自由度为(m1)(k1)(m-1)(k-1)),m是我们的分箱的数目k是我们的类别的数目

卡方分箱的步骤

卡方值能够帮助我们衡量分箱变量与类别变量是否相关。实现步骤如下:

  1. 将数值型变量(或有序类别型变量)排序后分成区间,设为G1,G2,...,GnG_1,G_2,...,G_n
  2. 对每相邻两个区间合并之后的卡方值进行计算。即分别计算G1G_1G2G_2, G2G_2G3G_3...G(n1)G_{(n-1)}GnG_n合并后的卡方值
  3. 找出上一步卡方值中最小的一对合并区间,假设为G(i1)G_{(i-1)}GiG_i, 将其合并形成新的G(i1)G_{(i-1)}
  4. 重复上述自底向上的合并操作,直至满足停止条件

(例如:某次合并后,最小的卡方值不满足卡方检验要求,或者某次合并后,总的未合并的区间数达到指定的数目(例如5, 10,15等))

分箱输出需要满足的条件

分箱输出还需满足:

  1. 每一个分箱的坏样本率呈现单调型
  2. 每一个分箱同时包含好、坏样本

为了满足这两个条件,有时候我们将对分箱做合并优化:

  • 单调性优化

    • 尝试更少 分箱数的卡方分箱法
    • 将不满足单调性的分箱与相邻分箱合并

U型或者倒U型的坏样本率也是有合理的业务解释的,可以保留。

  • 非0好坏样本优化

    • 通过分箱合并来使得每一个分箱同时包含好、坏样本