第四章 数据的预处理与特征构建(续)
Posted wuxiping2019
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四章 数据的预处理与特征构建(续)相关的知识,希望对你有一定的参考价值。
申请评分卡模型
数据的预处理与特征构建(续)
-
课程简介:逻辑回归模型的特征需要是数值型,因此类别型变量不能直接放入模型中去,需要对其进行编码。此外,为了获取评分模型的稳定性,建模时需要对数值型特征做分箱的处理。最终在带入模型之前,我们还需要对特征做单变量与多变量分析的工作。
目录:
-
特征的分箱
-
WOE与特征信息值
-
单变量分析与多变量分析
- 特征的分箱
-
分箱的概念
在评分卡模型开发中,变量需要进行分箱操作才能放入模型当中。分箱操作的定义如下:
-
对于数值型变量,将其分为若干有限的几个分段。例如,将收入分为<5K, 5K~10K, 10k~20k, >20k等
-
对于类别型变量,如果取值个数很多,将其合并为个数较少的几个分段。例如,将省份分为{北,上,广},{苏,浙,皖},{黑,吉,辽},{闽,粤,湘},其他。
评分卡模型引入变量分箱操作的原因
-
评分结果需要有一定的稳定性。例如,当借款人的总体信用资质不变时,评分结果也应保持稳定。某些变量(如收入)的一点波动,不应该影响评分结果。例如,当收入按照上述划分时,即使月收入从6k变为7k,在其他因素不变的情况下评分结果也不会发生改变。
-
类别型变量,当取值个数很多时,如果不分箱将会导致变量膨胀。例如,对于31个省级行政区(不含港澳台),使用onehot编码将会产生31个变量;采用哑变量编码将会产生30个变量。
-
分箱的要求
不需要分箱的变量
对于类别型变量,如果取值个数较少,一般无需分箱
分箱结果的有序性
对于有序型变量(包括数值型和有序离散型,例如学历),分箱要求保证有序性
分箱的平衡性
在较严格的情况下,分箱后的每一箱的占比不能相差太大。一般要求占比最小的占,占比不低于5%
分箱的单调性
在较严格的情况下,有序型变量分箱后每箱的坏样本率要求与箱呈单调关系。
例如,将收入分为<5K, 5K~10K, 10k~20k, >20k后,坏样本率分别是20%,15%,10%,5%。
或者,将学历分为{低于高中},{高中,大专},{本科,硕士},{博士}后,坏样本率分别是15%,10%,5%,1%。
分箱的个数
通常要求分箱后,箱的个数不能太多,一般在7或5个以内
分箱的优点与缺点
优点:
稳定:分箱后,变量原始值在一定范围内的波动不会影响到评分结果
缺失值处理:缺失值可以作为一个单独的箱,或者与其他值进行合并作为一个箱
异常值处理:异常值可以和其他值合并作为一个箱
无需归一化:从数值型变为类别型,没有尺度的差异
缺点:
有一定的信息丢失:数值型变量在分箱后,变为取值有限的几个箱
需要编码:分箱后的变量是类别型,不能直接带入逻辑回归模型中,需要进行一次数值编码
常用的分箱的方法
a)卡方分箱法
在有监督的分箱算法中,卡方分箱法是常用的一种方法。它以卡方分布和卡方值为基础,判断某个因素是否会影响目标变量。例如,在检验性别是否会影响违约概率时,可以用卡方检验来判断。
卡方检验的无效假设H0是:观察频数与期望频数没有差别,即该因素不会影响到目标变量。基于该假设计算出χ2值,它表示观察值与理论值之间的偏离程度。根据χ2分布及自由度可以确定在H0假设成立的情况下获得当前统计量及更极端情况的概率P。如果P值很小,说明观察值与理论值偏离程度太大,应当拒绝无效假设,表示比较资料之间有显著差异;否则就不能拒绝无效假设,尚不能认为样本所代表的实际情况和理论假设有差别。
卡方值的计算:
-
m:该因素取值个数; k:类别数
-
:因素i组中,k类别的观察频数
-
:原假设下的期望。
当样本总量比较大时,χ2统计量近似服从(m-1)(k-1)个自由度的卡方分布。
卡方检验的案例
总的违约率是(120+80)/(320+300)=32.25%
如果性别与违约不相关,意味着这男性与女性的违约率是同等的,都是32.25%,则:
男性违约的期望值为320*32.25% 104,非违约的期望=320-104=216
女性违约的期望值为300*32.25% 97,非违约的期望=300-97=203
由于有随机因素的存在,即使"性别与违约不相关"的假设成立,观察到的男性与女性的实际违约人群也不会精确地等于104和97。卡方检验的思想就是衡量预测值与观察值的差究竟有多大的概率是随机因素引起的。如果这个概率很小, "性别与违约不相关"的假设是不成成立的,因此男、女性的违约率是不同的。此处概率需要以卡方值对应的概率来描述:
由于性别与违约状况各有2种类别,卡方检验的自由度为(2-1)(2-1)=1,=8.05 对应的p值=0.005,因此性别在违约行为上有显著地影响。
卡方(ChiMerge)分箱法(续)
ChiMerge法采取自底向上不断合并的方法完成分箱操作。在每一步的合并过程中,依靠最小的卡方值来寻找最优的合并项。其核心思想是,如果某两个区间可以被合并,那么这两个区间的坏样本需要有最接近的分布,进而意味着两个区间的卡方值是最小的。于是ChiMerge的步骤如下:
-
将数值变量排序后分成区间较多的若干组,设为
-
计算合并后的卡方值,合并后的卡方值,直至合并后的卡方值
-
找出上一步所有合并后的卡方值中最小的一个,假设为,将其合并形成新的
-
不断重复2和3,直至满足终止条件
通用的ChiMerge的终止条件是:
-
某次合并后,最小的卡方值的p值超过0.9(或0.95,0.99等),或者
-
某侧合并后,总的未合并的区间数达到指定的数目(例如5,10,15等)
坏样本率非单调情形下的分箱合并
如前所述,当卡方分箱法完成分箱后,每一箱的坏样本率不一定满足单调的要求,此时需要做进一步的合并。此时有2种方案:
-
利用卡方分箱法缩减分箱数目。例如,当前分为5箱时出现坏样本率非单调情形,可以在卡方分箱法中设置分箱数为4,检验分箱数目为4时候的单调性。如果满足,即停止分箱;如不满足,可进一步地缩减分箱数目。分箱数目最小为2,因为只有两箱的情况下,单调性的存在性失去意义了。
-
对于当前不满足单调性的箱,可以与之前或之后的箱进行合并。如上一页图中,第3箱的的坏样本率低于前后两箱,于是需要合并。选择与之前或者之后的箱进行合并,可以依据以下原则:
-
合并之后,非单调的程度减轻。例如将第3箱和第4箱进行合并后,整体的单调性得到保证,于是执行该方案
-
如果两种方案都可以减轻非单调性,则可以选择"较优"的一种。一般来讲,可以从2点考量是否"较优"。假设合并2、3箱优于合并3、4箱,因为
-
合并2、3箱后的卡方值低于合并3、4箱后的卡方值,或者
-
合并2、3箱后,所有箱的占比比合并3、4箱后的占比更加平衡。
判断分箱后的分布均匀性
-
假设将原变量分为m箱,每箱的占比分别是.
-
可以用以下公式衡量占比的均匀性:
-
-
由施瓦茨不等式可以知道,当时, 最小,
等于。当中有一个为1其余为0时, 最大,等于1.于是可以看出,Balance越小表明越均匀。
带有特殊值的分箱
在实际业务工作中,一些正常的观测值之外有时会有一些特殊值的存在,例如缺失。从之前的分析可以知道,本次案例的数据中部分变量含有一些缺失值。在评分卡模型中,对于缺失值通常我们将其看成一种特殊的值。连续型变量的分箱工作需要预先将这些特殊值排除在外,即特殊值不参与分箱。
当连续型变量存在特殊值时,需要将特殊值看成单独的一箱,其余正常值参与分箱,且分箱个数为预设个数减去特殊值的个数。这里需要注意:
-
由于特殊值无法和其他数值进行比较,故检验坏样本率的单调性时,不考虑特殊值的坏样本率
-
当特殊值的占比很小(例如低于5%),可以考虑将特殊值与正常值中的一箱进行合并,且通常与最小的一箱或者最大的一箱进行合并
类别型(无序)变量的分箱
上述介绍的ChiMerge分箱法是针对数值型变量,例如收入、年龄等。分箱过程要保持原变量的有序性。对于类别型变量,如果是无序且取值个数较大,此时进行ChiMerge分箱之前需要先进行一次数值编码,用数字代替原来的类别型值。常用的数值编码是该数值对应的平均坏样本率。
例如,在评分模型里省份是一个常用的变量。在31个省级行政区(不含港澳台)中,我们用每个省在样本里的坏样本率代替原先的省级行政区。在这样的转换之下,类别型变量就转换成数值型变量。进而可以使用ChiMerge分箱法进行分箱操作。分箱后的省份可能是{北上广深},{苏浙鲁闽},{其他}等。
类别型(有序)变量的分箱
对于有序的类别型变量,例如学历={小学,初中,高中,大专,本科,硕士,博士},先将该变量进行排序,然后依然可以按照数值型变量的ChiMerge分箱法来进行分箱。"学历"这一边量最终的分箱结果可能是{小学,初中,高中},{大专,本科},{硕士,博士}
ChiMerge分箱法的优点与缺点
-
WOE与特征信息值
WOE编码
编码操作是一种用数值代替非数值的操作,目的是为了让模型能够对其进行数学运算。例如,可以用3组0~255之间的整数来对颜色进行编码。在评分卡模型开发中,完成变量的分箱后所有的变量都变成了组别。此时需要对其进行编码才能下一步的建模。评分卡模型里常用WOE(Weight of Evidence)的形式进行分箱后的编码。其计算公式如下:
WOE编码的含义
注意到WOE公式
我们有:
-
WOE的符号性质:
即如果某箱的WOE是正的,表明该箱的坏样本率低于整个样本的平均坏样本率,相对更加容易出现好样本
-
WOE的单调性质:
即WOE的单调性与坏样本率的单调性相反。
使用WOE编码的注意点
-
从WOE的计算公式可以看出,要使得某一箱的有意义,则与必须为大于0的正数。这也意味着在上一步的分箱操作中,每一箱都必须同时包含好坏样本。
-
上式的对数计算中,好、坏样本的占比分别在分子和分母上。也可以好、坏样本的占比分别在分母和分子上,但是要求某一个模型里,所有变量的处理方式是一致的。同时,WOE的计算方式对后续逻辑回归模型的变量的符号是有一定的要求的。
WOE编码的优点与缺点
WOE编码的优点
提高模型的性能:以每一箱中的相对全体的log odds的超出作为编码依据,能够提高模型的预测精度
统一变量的尺度:经验上来看,WOE编码后的取值范围一般介意-4与4之间
分层抽样中的WOE不变性:如果建模需要对好坏样本进行分层抽样,则抽样后计算的WOE与未抽样计算的WOE是一致的
WOE编码的缺点
要求每箱中同时包含好坏样本:已在之前有过说明
对多类别标签无效:如果目标变量取值个数超过2个,分箱后的WOE是无法计算的
特征信息值(IV)
在评分卡模型中,衡量变量重要性的工作是一项必要的工作。在特征工程的初期我们往往能够衍生出数量较多的变量,但是并不能保证这些变量对于模型开发来说都很重要。通过衡量变量重要性,能够让我们从中挑选出相对更加重要的变量,为后续的分析提供降维的能力。此处我们通过计算特征信息值(Information Value)来衡量其重要性。其计算公式如下:
从上式的计算可以看出,某变量的IV是该变量每个箱的WOE的加权,权重是。如前所述,WOE的计算也可以是。则此时权重也影响修正为。关于IV,我们有:
非负性:如果,则, 且, 进而有, 从而,于是IV>0.
权重性:WOE反映的是每箱中好坏比相对全体样本好坏比的超出(excess),而IV反映的是在该箱体量的意义下,这种超出的显著性。例如,某一箱的好、坏各自占了2%和1%,另一箱中的好、坏各自占了20%和10%。从WOE的角度看, 二者是一致的,都是ln(2)。但是前者的体量较少而后者的体量较大,分别是(2%-1%)=1%与(20%-10%)=10%。所以后者的显著性更强一些。
关于IV,我们需要注意几点:
-
IV衡量的是特征总体的重要性,而非每一箱的重要性。IV值越大,则表明该变量的重要程度越高。但是IV的值不宜太大,否则有可能有过拟合的风险。
-
与WOE一样,IV也要求每一箱中同时包含好坏样本
-
IV不仅受到变量重要性的影响,同时也与分箱方式有关。通常来讲,一个变量分箱的粒度越细,则IV会升高。所以需要注意到分箱的合理性。若干个变量分箱的个数差异不大时,才能比较IV。
3. 单变量分析与多变量分析
-
单变量分析(Single Factor Analysis)
完成变量分箱、WOE编码与IV计算后,我们需要做单变量分析。一般而言从两个角度进行分析:
-
变量的重要性。变量的重要性可以从IV值的判断出发。不同的IV值反映出变量不同程度的重要性。一般而言,IV的选择如下:
但是当IV异常高,例如超过1时,需要注意此时变量的分箱方式可能是不稳定的。
-
变量分布的稳定性。合适的变量,各箱的占比不会很悬殊。如果某变量有一箱的占比远低于其他箱,则该变量的稳定性也较弱。
单变量分析是从重要性及分布的稳定性两个角度来考虑。通常先选择IV高于阈值(如0.2)的变量,再挑选出分箱较均匀的变量。
多变量分析(Multi Factors Analysis)
完成单变量分析后,我们还需要对变量的整体性做把控,利用多变量分析的技术进一步缩减变量规模,形成全局更优的变量体系。多变量分析从以下两个角度分析变量的特性并完成挑选工作:
-
变量间的两两线性相关性
-
变量间的多重共线性
变量间不允许存在太强的两两线性相关性。主要原因是:
-
若变量和变量的两两线性相关性较强,说明这两个变量间存在一定的信息冗余。同时保留在模型里,即无必要,同时也增加了模型开发、部署与维护的负担
-
较强的线性相关性甚至会影响回归模型的参数估计。在回归模型的参数估计中,当两个变量间存在较强的线性相关性时,参数的估计会有较大的偏差
多变量分析(续)
完成变量间的两两线性相关性检验后,我们还需要检验是否存在多重共线性(multicolinearity)。多重共线性是指,一组变量中,某一个变量与其他变量的线性组合存在较强的线性相关性。同样地,存在较强的多重共线性意味着存在信息冗余,且对模型的参数估计产生影响。多重共线性通常用方差膨胀因子(VIF)来衡量,其计算方式如下:
其中是对的线性回归的决定系数。
一般而言,我们用10来衡量是否存在多重共线性。对于VIF>10,可以认为变量间存在多重共线性。此时,需要逐步从剔除一个变量,剩余的变量与计算VIF。如果发现当剔除后剩余变量对的VIF低于10,则从与中剔除IV较低的一个。如果每次剔除一个变量还不能降低VIF,则每次剔除2个变量,直至变量间不存在多重共线性。
以上是关于第四章 数据的预处理与特征构建(续)的主要内容,如果未能解决你的问题,请参考以下文章
Python遥感图像处理应用篇(续):使用EVI指数批量计算叶面积指数LAI