分箱介绍
-
涵义:将特征的取值按照某种规则进行分类,将特征的取值精度由细变粗。
-
意义:增加稳健性,减少过拟合风险
- 对取值很多的类别型(离散型)变量:利用独热编码方式将会大大增加特征维度。
-
如果一个特征的取数很多的时候,独热编码后的纬度就会很高,可能会导致过拟合风险
- 对连续型变量:利用分箱做特征处理会增加后续建模(尤其是使用逻辑回归这类线性算法)的稳健性。
- 解决了缺失值:在分箱中,缺失值会单独成为一个类别。如果缺失机制是非随机缺失,那么这个特征是非常有用的。
- 解决了异常值:分箱在一定程度上能将削弱异常值所带来的影响,因为异常值可以和其他值合并作为一个箱。
-
分箱的准则
-
-
分箱对象
- 取值较多的类别型变量&数值型变量
-
有序型
- 有序型变量的分箱一一般也需要保持有序型
-
单调或U型
- 有序型变量的分箱一般也需要违约率呈现单调或U型
-
平衡性
- 更严格地说,我们会希望分箱后的每一箱的占比不能相差太大
-
分箱数量
- 数量不宜过多,5-7个为宜
-
分箱的方法
非监督方法
- 等宽、等频、聚类;
- 优点:计算简单
- 缺点:未利用目标变量
监督方法
- 卡方分箱法、决策树分箱法、bestKS;
- 优点:考虑了目标变量
- 缺点:计算量大
卡方分箱
什么是卡方分箱
思想:对有序型变量,通过卡方值找到两个类分布最相似的分箱进行合并
卡方值的计算:
| 类别1 | 类别2 | ||
|---|---|---|---|
| 分箱1 | |||
| 分箱2 | |||
=分箱i在类别j下的样本观察频数
=分箱i在类别j下的样本期望频数
| 类别1 | 类别2 | |
|---|---|---|
| 分箱1 | ||
| 分箱2 |
(自由度为),m是我们的分箱的数目k是我们的类别的数目
卡方分箱的步骤
卡方值能够帮助我们衡量分箱变量与类别变量是否相关。实现步骤如下:
- 将数值型变量(或有序类别型变量)排序后分成区间,设为
- 对每相邻两个区间合并之后的卡方值进行计算。即分别计算与, 与...与合并后的卡方值
- 找出上一步卡方值中最小的一对合并区间,假设为与, 将其合并形成新的
- 重复上述自底向上的合并操作,直至满足停止条件
(例如:某次合并后,最小的卡方值不满足卡方检验要求,或者某次合并后,总的未合并的区间数达到指定的数目(例如5, 10,15等))
分箱输出需要满足的条件
分箱输出还需满足:
- 每一个分箱的坏样本率呈现单调型
- 每一个分箱同时包含好、坏样本
为了满足这两个条件,有时候我们将对分箱做合并优化:
-
单调性优化
- 尝试更少 分箱数的卡方分箱法
- 将不满足单调性的分箱与相邻分箱合并
U型或者倒U型的坏样本率也是有合理的业务解释的,可以保留。
-
非0好坏样本优化
- 通过分箱合并来使得每一个分箱同时包含好、坏样本