#IV的概念测试
#IV的直观理解编码
#IV的计算spa
#计算WOE排序
#计算WOE和IVform
#WOE值特色变量
IV的概念
IV全程是informaiton Value,中文意思是信息价值,或者信息量。
在逻辑回归、决策树等模型方法构建分类模型时,常常须要对自变量进行筛选。好比咱们有200个候选自变量,一般状况下,不会直接把2000个变量直接放到模型中去进行拟合训练,而是会用一些方法,从这200个自变量中挑选一些出来,放进模型,造成入模变量列表,那么如何挑选入模变呢?
挑选入模变量要考虑不少的因素,如“变量的预测能力,变量之间的相关性,变量的简单性(容易生成和使用),变量的强壮性(不容易被绕过),变量在业务上的可解释性等”,但其中最主要和直接的衡量标准是变量的预测能力
IV这一指标就是用来衡量自变量的预测能力(衡量自变量对目标变量影响程度的指标),相似的指标还有信息增益、基尼系数等
IV的直观理解
假设在一个分类问题中,目标变量的类别有两类:Y1,Y2。对于一个待预测的个体A,要判断A属于Y1仍是Y2,须要必定的信息,假定信息总量是I,而这些信息蕴含在自变量C1,C2,C3...,Cn中,那么对于其中的一个变量Ci来讲,其蕴含的信息越多,那么它对于判断A属于Y1仍是Y2的贡献就越大,Ci的信息价值就越大,Ci的IV就越大,它就越应该进入到入模变量
IV的计算
要继续IV的值,首先须要知道WOE
WOE的公式
一样,对于分组i,也会有一个对应的iv值,计算公式以下
有了一个变量各分组的iv值,咱们就能够计算整个变量的iv值,方法很简单,就是把各分组的IV相加:
其中,n为变量分组个数(即分箱后有多少组)
WOE的全称是“Weight of Evidence”,及证据权重,WOE是对原始自变量的一种编码形式
要对一个变量进行WOE编码,须要首先对这个变量进行 分组处理(也叫离散化、分箱等)分组后,对于第i组,WOE的计算公式以下
其中
: 这组中响应客户(风险模型中,对应的是违约客户,总之,指的是模型中预测变量取值为“是”或者1的个体)占全部样本中全部响应客户的比例
: 这组中未响应客户占样本中全部未响应客户的比例
# : 这个组中响应客户的数量
# : 这个组中未响应客户的数量
# : 是样本中全部响应的数量
# : 样本中全部未响应的数量
从上述公式中看出,WOE表示的其实是“ 当前分组中响应客户占全部响应客户的比例”和“ 当前分组中没有响应的客户占全部没有响应的客户的比例”的差别
将公式进行变换
能够看出,WOE能够这么理解,当前 这个组中响应的客户和未响应的比值,和所 有样本中这个比值的差别。将这两个比值在作比值,再取对数来表示。WOE越大,这种差别越大,这个分组里的样本响应的可能性就越大,WOE越小,差别越小
假设构建一个预测模型,该模型为了预测公司的每一个客户对于某项营销活动可以响应,或者说要预测的是客户对咱们这项营销活动响应的可能性有多大,假设已经从公司客户列表中随机抽取了100000个客户进行营销活动测试,收集了这些客户的响应结果,做为咱们的建模数据集,其中响应的客户有10000各,提取部分的变量做为模型的候选变量集:
a、最近一个月是否有购买
b、最近一次购买金额
c、最近一笔购买的商品类别
d、是不是公司的VIP客户
假设,对变量进行了离散化(分箱),统计结果以下
(1)最近一个月是否有过购买:
(2)最近一次购买金额:
(3)最近一笔购买的商品类别:
(4)是不是公司VIP客户:
计算WOE和IV
以其中一个变量“最近一次购买金额”变量为例
计算WOE
将这个变量离散化为4各阶段 <100元,[100,200],[200,500],>=500元,根据公司计算WOE值
计算IV
计算变量总的IV值
WOE值和IV值的特色
WOE值特色
a、当前分组中,响应的比例越大,WOE值越大
b、当前分组WOE的正负,由当前分组响应和未响应的比例,与样本总体响应和未响应的比例的大小关系决定
当前分组的比例小于样本总体比例时,WOE为负数
当前分组的比例大于总体比例时,WOE为正
当前分组的比例和总体比例相等时,WOE为0
c、WOE的取值范围是全体实数
进一步理解下WOE,会发现,WOE其实描述了变量当前这个分组,对判断个体是否影响(或者说属于哪一个类)所起到影响方向和大小,当WOE为正时,变量当前取值对判断个体是否会响应起到正向影响,当WOE为负时,起到了负向影响,而WOE值的大小,则是这个影响的大小的体现。
IV的特色
a、对于变量的一个分组,这个分组的响应和未响应比例与样本总体响应和未响应的比例相差越大,IV值越大,不然,IV值越小
b、极端状况下,当前分组的响应变量和未响应的比例和样本总体的响应和未响应的比例相等时,IV值为0
c、IV的取值范围是[0,+ ∞ ],当前分组中只包含响应客户或者为响应客户时,IV = + ∞
IV值的比较和变量预测能力的排序
已经计算出其中一个了,其余的也相似,结果以下
a、最近一个月是否有过购买:0.250224725
b、最近一笔购买的商品类别:0.615275563
c、是不是公司VIP客户:1.56550367
d、 最近一次购买金额的IV为0.49270645
这四各变量IV排序结果是这样的:是不是公司VIP客户 > 最近一笔购买的商品类别 > 最近一次购买金额 > 最近一个月是否有过购买,因此得出结论:“是不是公司的VIP客户”的预测能力最高的变量,“最近一个月是否有过购买”是预测能力最低的变量。
为何用IV而不是直接用WOE
(1)
从公式上看IV和WOE的差异在于IV在WOE基础上乘以的那个,咱们暂且用pyn来表明这个值。
第一个缘由,当咱们衡量一个变量的预测能力时,咱们所使用的指标值不该该是负数,不然,说一个变量的预测能力的指标是-2.3,听起来很别扭。从这个角度讲,乘以pyn这个系数,保证了变量每一个分组的结果都是非负数,你能够验证一下,当一个分组的WOE是正数时,pyn也是正数,当一个分组的WOE是负数时,pyn也是负数,而当一个分组的WOE=0时,pyn也是0
(2)
乘以pyn后,体现出了变量当前分组中个体的数量占总体个体数量的比例,对变量预测能力的影响。怎么理解呢?继续看举例
假设咱们上面所说的营销响应模型中,还有一个变量A,其取值只有两个:0,1,数据以下:
咱们从上表能够看出,当变量A取值1时,其响应比例达到了90%,很是的高,可是咱们可否说变量A的预测能力很是强呢?不能。为何呢?缘由就在于,A取1时,响应比例虽然很高,但这个分组的客户数太少了,占的比例过低了。虽然,若是一个客户在A这个变量上取1,那他有90%的响应可能性,可是一个客户变量A取1的可能性自己就很是的低。因此,对于样本总体来讲,变量的预测能力并无那么强。咱们分别看一下变量各分组和总体的WOE,IV。
从这个表咱们能够看到,变量取1时,响应比达到90%,对应的WOE很高,但对应的IV却很低,缘由就在于IV在WOE的前面乘以了一个系数,而这个系数很好的考虑了这个分组中样本占总体样本的比例,比例越低,这个分组对变量总体预测能力的贡献越低。相反,若是直接用WOE的绝对值加和,会获得一个很高的指标,这是不合理的。
IV的极端状况以及处理方式
IV依赖WOE,而且IV是一个很好的衡量自变量对目标变量影响程度的指标。可是,使用过程当中应该注意一个问题:变量的任何分组中,不该该出现响应数=0或非响应数=0的状况。
缘由很简单,当变量一个分组中,响应数=0时,
此时对应的IVi为+∞。
而当变量一个分组中,没有响应的数量 = 0时,
此时的IVi为+∞。
IVi不管等于负无穷仍是正无穷,都是没有意义的。
由上述问题咱们能够看到,使用IV其实有一个缺点,就是不能自动处理变量的分组中出现响应比例为0或100%的状况。那么,遇到响应比例为0或者100%的状况,咱们应该怎么作呢?建议以下:
(1)若是可能,直接把这个分组作成一个规则,做为模型的前置条件或补充条件;
(2)从新对变量进行离散化或分组,使每一个分组的响应比例都不为0且不为100%,尤为是当一个分组个体数很小时(好比小于100个),强烈建议这样作,由于自己把一个分组个体数弄得很小就不是太合理。
(3)若是上面两种方法都没法使用,建议人工把该分组的响应数和非响应的数量进行必定的调整。若是响应数本来为0,能够人工调整响应数为1,若是非响应数本来为0,能够人工调整非响应数为1.