用IV和WOE来做特征挑选

作者 : 开心源码 本文共1232个字,预计阅读时间需要4分钟 发布时间: 2022-05-13 共244人阅读

什么是变量的离散化

变量的离散化就是只抽取出一个变量,分析变量当中的分组与标签的分布情况。

比方对于某个活动用户有响应和不响应的情况(这里的响应与否就是我们的标签),有多个变量:

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

那么我们每次取一个变量进行对其下分组的不同标签数目进行统计如下:

变量的离散化实例

数据挖掘当中的IV和WOE详解

IV就是information value,也就是信息量。我们可以这么了解,就是我们在预测A是属于Y1类还是Y2类的时候,需要有一部分的判断信息,这部分信息是来自于变量C_{1}, C_{2}, C_{3}, C_{4}……C_{n},那么其中有少量变量是对预测具备比较大的贡献的,那么我们就说这一部分的自变量的信息量很大。因而我们想找出这部分自变量是哪些?之后我们可以把这些重要的特征传入到模型进行训练。IV就是用来定量衡量这一部分信息量大小的变量。其中IV是以WOE为基础的。

WOE

WOE的全称是“weight of evidence”,也就是证据权重。对某个离散型变量而言,具备不同的值,我们按照这些不同的值对不同标签数量进行分组就是分箱操作。对于某个分组WOE的计算公式如下:

WOE_{i}=ln(\dfrac{p_{y_{i}}}{p_{n_{i}}})=ln(\dfrac{\dfrac{y_{i}}{y_{T}}}{\dfrac{n_{i}}{n_{T}}})

在这里i代表该分组的序号,y代表yes,也就是有响应或者者说标签为1的;n代表no,也就是无响应或者者说标签为0的。T代表Total。这里的意义就是该分组有响应的用户占总的有响应用户的百分比,除以对应该分组无响应占总的百分比。其数值反映出该分组有响应与无响应情况跟总体的差异情况,比方说年龄段为[60, 80]的买保险的比例有80%,而总体各个年龄段买保险的人数只有50%,那么这个分组下响应情况与总体的响应情况差异就会很大,WOE_{i}这个值也会很大。

WOE_{i}还可以写成

WOE_{I}=ln(\dfrac{\dfrac{y_{i}}{n_{i}}}{\dfrac{y_{T}}{n_{T}}})也就是该分组有响应和无响应的比例,与总体有响应和无响应的比例的比值。

IV的计算

IV的计算是在WOE前面加上p_{y_{i}}-p_{n_{i}},也就是该分组有响应和无响应占总体比例的差值。

IV=(p_{y_{i}}-p_{n_{i}})*WOE_{i}=(p_{y_{i}}-p_{n_{i}})*ln(\dfrac{\dfrac{y_{i}}{n_{i}}}{\dfrac{y_{T}}{n_{T}}})
关于计算的实例可以参考这个链接。这是该分组的IV值,而该变量所有分组的IV值总和加起来就得到了该变量的IV值。

关于为什么用IV而不用WOE

  1. WOE有正有负值,IV的正负与WOE的正负是相同的,乘积保证是正值,否则直接将WOE值加起来会正负抵消掉。
  2. IV值前面的(p_{y_{i}}-p_{n_{i}})其实反映出了该分组的有响应和无响应分别占总体的比例,也就是假如某个分组样本占总体数量比较低,那么对预测其实贡献也是比较低的,所以会给WOE基础上再打个折。

比方

A响应未响应合计响应比例WOEIV
1901010090%4.39444920.0390618
09910899909990010%-0.008937.937E-05
合计100009000010000010%4.40337880.0391411

在这里本身A变量下分组1的响应数就很少,占总的比例很小,取A的1的可能性很低,因而对模型预测的贡献就 很小,因而通过(p_{y_{i}}-p_{n_{i}})可以进行打折

注意

IV里面分组不能只有响应的数量而没有未响应的数量,否则的话一个会得到正无穷,另一个会得到负无穷。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 用IV和WOE来做特征挑选

发表回复