玩转大数据大数据机器学习与数据挖掘

WOE与IV值

2018-08-12  本文已影响3人  三猫后端

原文链接:WOE与IV值

微信公众号:机器学习养成记    搜索添加微信公众号:chenchenwings


计算WOE和IV是评分卡模型的一个重要环节,之前没有仔细研究过,但总觉得他们既然可以放在评分卡模型中去解决相应的问题,那应该也可以放在其他模型中解决相似的问题,所以还是很值得研究一下。下文是自己对这两个指标的理解整理。

应用场景

WOE和IV主要用来判断变量的预测强度,比如判断用户收入对用户是否会发生逾期的预测强度。因此,两个值的使用主要是在有监督的分类问题中,具体可以细化到如下方面:

指导变量离散化。在建模过程中,时常需要对连续变量进行离散化处理,如将年龄进行分段。但是变量不同的离散化结果(如:年龄分为[0-20]还是[0-15])会对模型产生不同影响。因此,可以根据指标所反应的预测强度,调整变量离散化结果。(对一些取值很多的分类变量,在需要时也可以对其进行再分组,实现降维。)

变量筛选。我们需要选取比较重要的变量加入模型,预测强度可以作为我们判断变量是否重要的一个依据。

WOE(Weight of Evidence)

我们使用german credit数据来解释WOE及后面的IV值。german credit数据集包括了用户状态,信用历史,是否有工作,财产状况等属性,和是否发生违约标签。

german credit中一共有1000条数据,其中700条为未违约用户,300条为违约样本。我们选取savings这个分类字段进行相应解释,以此省去之前的离散化操作。此字段共有5个取值,具体如下:

每个取值代表一个分组,每个分组中好坏样本数如下,其中1代表未违约,2代表违约:

统计好后,就可以进行WOE值的计算,WOE公式如下:

P(yi)代表第i组中,违约样本占所有违约样本的比例;

P(ni)代表第i组中,未违约样本占所有未违约样本比例;

y:所有违约样本数;

n:所有未违约样本数。

经过变换,上述式子可以变为

根据对数变换曲线,可知,WOE取值为全体实数,且在大于0部分,WOE越大表示分组中存在违约样本可能性越大(正向作用),小于0部分,WOE越小则越表示了一种反向作用。因此,WOE反映了自变量取值对目标变量的影响。经过计算,得到相应的WOE值:

以savings变量取A61时为例,对应的woe=ln((217/300)/(386/700))。WOE没有考虑分组中样本占整体样本的比例,如果一个分组的WOE值很高,但是样本数占整体样本数很低,则对变量整体预测的能力会下降。因此,我们还需要计算IV值。

IV(Information Value)

IV值考虑了分组中样本占整体样本的比例,相当于WOE的加权求和。具体计算公式如下:

根据上面的公式,我们可以得到savings字段各取值IV值及字段总体IV值:

R语言实现

针对此特定数据集,编写了如下函数,计算WOE与IV:

调用后得到相关结果:


推荐文章

· Bagging算法(R语言)

·静态爬虫与地址经纬度转换(python)

·特征工程(一):前向逐步回归(R语言)

·聚类(三):KNN算法(R语言)

·小案例(六):预测小偷行为(python)

·ggplot2:正负区分条形图及美化

扫描二维码,关注我们。

如需转载,请在开篇显著位置注明作者和出处,并在文末放置机器学习养成记二维码和添加原文链接。

快来关注我们吧!

上一篇下一篇

猜你喜欢

热点阅读