数据挖掘模型中的IV和WOE详解

1.IV的用途

 

 

IV的全称是Information Value,中文意思是信息价值,或者信息量。ide

咱们在用逻辑回归、决策树等模型方法构建分类模型时,常常须要对自变量进行筛选。好比咱们有200个候选自变量,一般状况下,不会直接把200个变量直接放到模型中去进行拟合训练,而是会用一些方法,从这200个自变量中挑选一些出来,放进模型,造成入模变量列表。那么咱们怎么去挑选入模变量呢?测试

挑选入模变量过程是个比较复杂的过程,须要考虑的因素不少,好比:变量的预测能力,变量之间的相关性,变量的简单性(容易生成和使用),变量的强壮性(不容易被绕过),变量在业务上的可解释性(被挑战时能够解释的通)等等。可是,其中最主要和最直接的衡量标准是变量的预测能力。编码

“变量的预测能力”这个说法很笼统,很主观,非量化,在筛选变量的时候咱们总不能说:“我以为这个变量预测能力很强,因此他要进入模型”吧?咱们须要一些具体的量化指标来衡量每自变量的预测能力,并根据这些量化指标的大小,来肯定哪些变量进入模型。IV就是这样一种指标,他能够用来衡量自变量的预测能力。相似的指标还有信息增益、基尼系数等等。spa

 

 

2.对IV的直观理解

 

从直观逻辑上大致能够这样理解“用IV去衡量变量预测能力”这件事情:咱们假设在一个分类问题中,目标变量的类别有两类:Y1,Y2。对于一个待预测的个体A,要判断A属于Y1仍是Y2,咱们是须要必定的信息的,假设这个信息总量是I,而这些所须要的信息,就蕴含在全部的自变量C1,C2,C3,……,Cn中,那么,对于其中的一个变量Ci来讲,其蕴含的信息越多,那么它对于判断A属于Y1仍是Y2的贡献就越大,Ci的信息价值就越大,Ci的IV就越大,它就越应该进入到入模变量列表中。3d

 

 

3.IV的计算

 

 

前面咱们从感性角度和逻辑层面对IV进行了解释和描述,那么回到数学层面,对于一个待评估变量,他的IV值究竟如何计算呢?为了介绍IV的计算方法,咱们首先须要认识和理解另外一个概念——WOE,由于IV的计算是以WOE为基础的。orm

 

3.1WOE

 

 

WOE的全称是“Weight of Evidence”,即证据权重。WOE是对原始自变量的一种编码形式。blog

要对一个变量进行WOE编码,须要首先把这个变量进行分组处理(也叫离散化、分箱等等,说的都是一个意思)。分组后,对于第i组,WOE的计算公式以下:排序

 

其中,pyi是这个组中响应客户(风险模型中,对应的是违约客户,总之,指的是模型中预测变量取值为“是”或者说1的个体)占全部样本中全部响应客户的比例,pni是这个组中未响应客户占样本中全部未响应客户的比例,#yi是这个组中响应客户的数量,#ni是这个组中未响应客户的数量,#yT是样本中全部响应客户的数量,#nT是样本中全部未响应客户的数量。数学

从这个公式中咱们能够体会到,WOE表示的其实是“当前分组中响应客户占全部响应客户的比例”和“当前分组中没有响应的客户占全部没有响应的客户的比例”的差别。io

对这个公式作一个简单变换,能够获得:

 

变换之后咱们能够看出,WOE也能够这么理解,他表示的是当前这个组中响应的客户和未响应客户的比值,和全部样本中这个比值的差别。这个差别是用这两个比值的比值,再取对数来表示的。WOE越大,这种差别越大,这个分组里的样本响应的可能性就越大,WOE越小,差别越小,这个分组里的样本响应的可能性就越小。

关于WOE编码所表示的意义,你们能够本身再好好体会一下。

 

 

3.2 IV的计算公式

 

 

有了前面的介绍,咱们能够正式给出IV的计算公式。对于一个分组后的变量,第i 组的WOE前面已经介绍过,是这样计算的:

 

一样,对于分组i,也会有一个对应的IV值,计算公式以下:

 

有了一个变量各分组的IV值,咱们就能够计算整个变量的IV值,方法很简单,就是把各分组的IV相加:

 

其中,n为变量分组个数。

 

 

3.3 用实例介绍IV的计算和使用

 

 

下面咱们经过一个实例来说解一下IV的使用方式。

 

 

3.3.1 实例

 

 

假设咱们须要构建一个预测模型,这个模型是为了预测公司的客户集合中的每一个客户对于咱们的某项营销活动是否可以响应,或者说咱们要预测的是客户对咱们的这项营销活动响应的可能性有多大。假设咱们已经从公司客户列表中随机抽取了100000个客户进行了营销活动测试,收集了这些客户的响应结果,做为咱们的建模数据集,其中响应的客户有10000个。另外假设咱们也已经提取到了这些客户的一些变量,做为咱们模型的候选变量集,这些变量包括如下这些(实际状况中,咱们拥有的变量可能比这些多得多,这里列出的变量仅仅是为了说明咱们的问题):

 

  • 最近一个月是否有购买;
  • 最近一次购买金额;
  • 最近一笔购买的商品类别;
  • 是不是公司VIP客户;

 

 

假设,咱们已经对这些变量进行了离散化,统计的结果以下面几张表所示。

(1) 最近一个月是否有过购买:


 

(2) 最近一次购买金额:

(3) 最近一笔购买的商品类别:

(4) 是不是公司VIP客户:


 

3.3.2 计算WOE和IV

 

咱们以其中的一个变量“最近一次购买金额”变量为例:


咱们把这个变量离散化为了4个分段:<100元,[100,200),[200,500),>=500元。首先,根据WOE计算公式,这四个分段的WOE分别为:

插播一段,从上面的计算结果中咱们能够看一下WOE的基本特色:

 

  • 当前分组中,响应的比例越大,WOE值越大;
  • 当前分组WOE的正负,由当前分组响应和未响应的比例,与样本总体响应和未响应的比例的大小关系决定,当前分组的比例小于样本总体比例时,WOE为负,当前分组的比例大于总体比例时,WOE为正,当前分组的比例和总体比例相等时,WOE为0。
  • WOE的取值范围是全体实数。

 

咱们进一步理解一下WOE,会发现,WOE其实描述了变量当前这个分组,对判断个体是否会响应(或者说属于哪一个类)所起到影响方向和大小,当WOE为正时,变量当前取值对判断个体是否会响应起到的正向的影响,当WOE为负时,起到了负向影响。而WOE值的大小,则是这个影响的大小的体现。

好,回到正题,计算完WOE,咱们分别计算四个分组的IV值:

 

再插播一段,从上面IV的计算结果咱们能够看出IV的如下特色:

 

  • 对于变量的一个分组,这个分组的响应和未响应的比例与样本总体响应和未响应的比例相差越大,IV值越大,不然,IV值越小;
  • 极端状况下,当前分组的响应和未响应的比例和样本总体的响应和未响应的比例相等时,IV值为0;
  • IV值的取值范围是[0,+∞),且,当当前分组中只包含响应客户或者未响应客户时,IV = +∞。

 

 

OK,再次回到正题。最后,咱们计算变量总IV值:

 

 

3.3.3 IV值的比较和变量预测能力的排序

 

 

咱们已经计算了四个变量中其中一个的WOE和IV值。另外三个的计算过程咱们再也不详细的说明,直接给出IV结果。

 

  • 最近一个月是否有过购买:0.250224725
  • 最近一笔购买的商品类别:0.615275563
  • 是不是公司VIP客户:1.56550367

 

前面咱们已经计算过,最近一次购买金额的IV为0.49270645

这四个变量IV排序结果是这样的:是不是公司VIP客户 > 最近一笔购买的商品类别 > 最近一次购买金额 > 最近一个月是否有过购买。咱们发现“是不是公司VIP客户”是预测能力最高的变量,“最近一个月是否有过购买”是预测能力最低的变量。若是咱们须要在这四个变量中去挑选变量,就能够根据IV从高到低去挑选了。

 

4.关于IV和WOE的进一步思考

 

4.1 为何用IV而不是直接用WOE

 

 

从上面的内容来看,变量各分组的WOE和IV都隐含着这个分组对目标变量的预测能力这样的意义。那咱们为何不直接用WOE相加或者绝对值相加做为衡量一个变量总体预测能力的指标呢?

而且,从计算公式来看,对于变量的一个分组,IV是WOE乘以这个分组响应占比和未响应占比的差。而一个变量的IV等于各分组IV的和。若是愿意,咱们一样也能用WOE构造出一个这样的一个和出来,咱们只须要把变量各个分组的WOE和取绝对值再相加,即(取绝对值是由于WOE可正可负,若是不取绝对值,则会把变量的区分度经过正负抵消的方式抵消掉):

 

那么咱们为何不直接用这个WOE绝对值的加和来衡量一个变量总体预测能力的好坏,而是要用WOE处理后的IV呢。

咱们这里给出两个缘由。IV和WOE的差异在于IV在WOE基础上乘以的那个,咱们暂且用pyn来表明这个值。

 

第一个缘由,当咱们衡量一个变量的预测能力时,咱们所使用的指标值不该该是负数,不然,说一个变量的预测能力的指标是-2.3,听起来很别扭。从这个角度讲,乘以pyn这个系数,保证了变量每一个分组的结果都是非负数,你能够验证一下,当一个分组的WOE是正数时,pyn也是正数,当一个分组的WOE是负数时,pyn也是负数,而当一个分组的WOE=0时,pyn也是0。

固然,上面的缘由不是最主要的,由于其实咱们上面提到的这个指标也能够彻底避免负数的出现。

 

更主要的缘由,也就是第二个缘由是,乘以pyn后,体现出了变量当前分组中个体的数量占总体个体数量的比例,对变量预测能力的影响。怎么理解这句话呢?咱们仍是举个例子。

假设咱们上面所说的营销响应模型中,还有一个变量A,其取值只有两个:0,1,数据以下:

咱们从上表能够看出,当变量A取值1时,其响应比例达到了90%,很是的高,可是咱们可否说变量A的预测能力很是强呢?不能。为何呢?缘由就在于,A取1时,响应比例虽然很高,但这个分组的客户数太少了,占的比例过低了。虽然,若是一个客户在A这个变量上取1,那他有90%的响应可能性,可是一个客户变量A取1的可能性自己就很是的低。因此,对于样本总体来讲,变量的预测能力并无那么强。咱们分别看一下变量各分组和总体的WOE,IV。

从这个表咱们能够看到,变量取1时,响应比达到90%,对应的WOE很高,但对应的IV却很低,缘由就在于IV在WOE的前面乘以了一个系数,而这个系数很好的考虑了这个分组中样本占总体样本的比例,比例越低,这个分组对变量总体预测能力的贡献越低。相反,若是直接用WOE的绝对值加和,会获得一个很高的指标,这是不合理的。

 

4.2 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.

相关文章
相关标签/搜索