新闻中心

评分卡模型-卡方分箱

作者:澳门赌场  来源:澳门真人正规官网  时间:2020-08-21 10:10  点击:

  评分卡建模在金融行业应用得比较广泛,比如对客户的信贷诚信度进行评分。在建模过程中,对连续变量的分箱是一个必不可少的过程。正好我最近的项目也是要做一个积分卡,因此想对分箱做一个较全面的总结。

  何谓分箱,简单地说,分箱就是将连续变量离散化,将多状态的离散变量合并成少状态。

  列表内容离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;

  列表内容逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;

  离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;

  列表内容特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问;

  特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。 可以将缺失作为独立的一类带入模型。

  分箱方法分为无监督分箱和有监督分箱。常用的无监督分箱方法有等频分箱,等距分箱和聚类分箱。有监督分箱主要有best-ks分箱和卡方分箱。基于我的项目中重点应用了卡方分箱,所以这里重点对卡方分箱做些总结。

  卡方分箱是自底向上的(即基于合并的)数据离散化方法。它依赖于卡方检验:具有最小卡方值的相邻区间合并在一起,直到满足确定的停止准则。

  基本思想:对于精确的离散化,相对类频率在一个区间内应当完全一致。因此,如果两个相邻的区间具有非常类似的类分布,则这两个区间可以合并;否则,它们应当保持分开。而低卡方值表明它们具有相似的类分布。

  自由度比类别数量小1。例如:有3类,自由度为2,则90%置信度(10%显著性水平)下,卡方的值为4.6。

  大于阈值4.6的卡方值就说明属性和类不是相互独立的,不能合并。如果阈值选的大,区间合并就会进行很多次,离散后的区间数量少、区间大。

  分为箱之后,需要评估。在积分卡模型中,最常用的评估手段是计算出WOE和IV值。对于WOE和IV值的含义,我推荐博客:

  这里有个问题,卡方分箱对分箱的数量没有限制,这样子会导致最后分箱的结果是分箱太细。

  #注意这里的target必须是0,1。要不然这样求bad的数据条数,就没有意义,并且bad是1,good是0。

  #分箱以后检查每箱的bad_rate的单调性,如果不满足,那么继续进行相邻的两项合并,直到bad_rate单调为止

  #检查最大箱,如果最大箱里面数据数量占总数据的90%以上,那么弃用这个变量

  #对于类别型数据,以bad_rate代替原有值,转化成连续变量再进行分箱计算。比如我们这里的户籍地代码,就是这种数据格式

  在工程中,考虑到能够自动化对数据里所有需要分箱的连续变量进行分箱,所以在工程上需要做些处理,需要写个自动化分箱脚本:

  :param colList: 这个分箱的列数据,数据结构是一个字段数组

  对于分箱需要注意的是,分完箱之后,某些箱区间里,bad或者good分布比例极不均匀,极端时,会出现bad或者good数量直接为0。那么这样子会直接导致后续计算WOE时出现inf无穷大的情况,这是不合理的。这种情况,说明分箱太细,需要进一步缩小分箱的数量。

  离散特征在数据挖掘的过程中具有重要作用,因此特征离散化是构建特征工程的一个很常见、也很重要的环节。最近做项目需要用到

  实现特征的离散化,发现这么经典的功能python竟然没有相关的封装库。找了许多资料,老感觉差了一点,看的迷迷糊糊的。最后实在不得已,只能翻出原论文 Chi2: Feature Selection and Discretization of N......

澳门赌场

上一篇:2016宏华商务分箱FT-6A4安装案例之——历代帝王庙管理处

下一篇:高精度压电旋转台可用于电子器件的无损检测