WOE与IV值

作者: 三猫后端 | 来源:发表于2018-08-12 22:35 被阅读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:正负区分条形图及美化

    扫描二维码,关注我们。

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

    快来关注我们吧!

    相关文章

      网友评论

        本文标题:WOE与IV值

        本文链接:https://www.haomeiwen.com/subject/sxmebftx.html