【卡方分箱】理论 & Python源码解析

本文介绍了卡方分箱的概念及其在数据挖掘中的应用,详细讲解了卡方检验的原理和步骤。卡方分箱通过计算相邻区间的目标变量分布差异,寻找最优分箱策略。文中还探讨了如何在Python的toad库中实现卡方分箱,并分享了源码解析。

一、介绍

分箱就是将特征进行离散化处理的过程,将变量可能取值的范围依据一定的挡板进行分隔。比如年龄这个变量是,可以分箱为0-18,18-30,30-45,45-60,婚姻状况这个变量,可以分为【初婚、复婚】,【未婚、未知】,【离异、丧偶】等。

 分箱的好处主要有这些:

  1. 分箱后的特征对异常数据有更强的鲁棒性。比如年龄中有一个异常值为300,分箱之后就可能划到>80这一箱中,而如果直接入模的话会对模型造成很大干扰。
  2. 特征离散化之后,每个变量有单独的权重,可以为逻辑回归模型引入了非线性,能够提升模型表达能力,加大拟合。
  3. 特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。
  4. 可以将缺失作为独立的一类带入模型。
  5. 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展。

尽管如此,分箱的过程必然会导致我们信息量的减少,因为我们会将多个特征值作为一个类别进行后续的计算,于是在分箱时,我们应尽可能考虑分箱的结果,如果能够保证每箱中每个特征值的取值对于我们预测目标的预测效果是近似的,那么这就是一个很好的分箱方法。

一般我们所谓的等频分箱、等距分箱、聚类分箱等方法,其实是一个单变量的分箱方式,即我们只会考虑一个特征变量本身分布来进行分箱,这种情况下我们进行分箱并不会对最终结果带来较好的影响,只不过由于这类分箱方式比较简单,在大数据量下尤其是深度学习的过程中,可以大大的减少我们计算量和计算复杂度。

对于小数据量的情况,我们可以考虑使用一些复杂的手段进行分箱,例如通过卡方分箱、决策数分箱等需要联合目标变量和特征变量进行分箱计算的算法进行分箱,这类分箱的好处在于我们能在一定程度上,保证每箱内的数据在目标变量上的表现是一致的,于是对于分箱带来的信息减少对模型搭建的影响将会大大降低;此外在基于线性模型的各类模型中,这样的分箱也能取得更好的效果。

今天我们会结合Python中经典的toad库进行卡方分箱的源码和分箱思路的讲解。

 

二、卡方分箱
2.1. 卡方是什么?

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值