评分卡之变量分箱

本文详细介绍了评分卡中的变量分箱技术,包括有监督的卡方分箱、BestKS分箱和无监督的等频分箱,强调了分箱在消除变量量纲影响、提高模型鲁棒性方面的作用,以及遵循的五项原则。
摘要由CSDN通过智能技术生成

1.分箱是计算woe前重要的特征工程,能有效避免模型过拟合,提高模型鲁棒性

2.分箱的本质是把连续变量离散化

3.变量分箱分为有监督分箱和无监督分箱两种

4.有监督分箱主要包括卡方分箱BestKS分箱等

5.无监督分箱主要有等频分箱、等距分箱、聚类分箱等

4.变量分箱应遵循5项原则:箱子样本数占比不少于训练样本数5%;组间差距尽可能大;必须保证好坏样本;箱子数控制在5~8个;尽可能单调

《WOE编码和IV值》介绍了金融风控评分卡相关知识,本文来具体介绍变量分箱操作。

文章链接:WOE编码与IV值

变量分箱是评分卡的核心环节,也是直接决定变量woe和IV值的质量。根据woe的优势,合理的分箱可以消除变量的量纲影响,而且能减少异常值等噪声数据的影响,有效避免模型过拟合,提高模型鲁棒性。

分箱的本质是把连续变量离散化。对于本身就是离散型变量,每一种取值就是一个箱子,或者把几种取值合并为一个箱子即可。我们重点介绍连续型变量分箱的方法。

总体上,变量分箱有两种:有监督分箱和无监督分箱,前者主要包括卡方分箱BestKS分箱;后者主要有等频分箱、等距分箱、聚类分箱。通常上,变量分箱有五个原则:

  • 两两箱子bad%差距尽可能大

  • 每个箱子样本数占比不少于总体样本数的5%

  • 必须有好、坏分类(否则需要修正的woe计算公式)

  • 每个变量的箱子数控制在5~8个范围内(视训练样本数大小微调)

  • 每个变量的箱子尽可能保证单调性

下面我们针对各种分箱方法做介绍。

1.卡方分箱

根据最大分组数目和卡方阈值来控制最终的分箱数

分箱逻辑:

1)初始时,所有变量值都自成一组,统计频数。

2)然后按照各组起始值从小到大,依次扫描,取出两组拼成计算卡方值。

如果当前计算出的卡方值小于已观察到的最小卡方值,则标记当前坐标,并更新已观察最小卡方值为当前值。

3)扫描一遍后,如果当前分组数大于最大分组数,或者最小卡方值小于阈值,就将最小卡方值对应的两组频数合并,区间也合并。并回第2步执行。

否则,停止合并。输出当前各组的区间切分点。

下面代码实现这个过程:

#计算卡方值
def chi(arr):
    '''
    :param arr: 变量与标签值的numpy二维数组
    :return:返回卡方值
    '''
    assert(arr.ndim == 2)
    R_sum = np.sum(arr,axis=1) #行求和
    C_sum = np.sum(arr,axis=0) #列求和
    S_sum = np.sum(arr) #样本总量
    Likelihood_matrix = (R_sum / S_sum).reshape(len(R_sum), 1) * C_sum.reshape(1, len(C_sum)) #似然估计矩阵
    chi_value = np.sum((arr - Likelihood_matrix)**2/Likelihood_matrix) #拟合度求和,得估计的卡方值
    return chi_value


# 卡方分箱
def Chimerge(df,col,target,max_group = None,threshold = 3.841):
    '''
    :param df: pandas数据集
    :para
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

整得咔咔响

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值