woe分析_信用评分模型中WOE、IV详解

woe分析_信用评分模型中WOE、IV详解IV informaitonV IV 的概念 IV 全程是 informaitonV 中文意思是信息价值 或者信息量 在逻辑回归 决策树等模型方法构建分类模型时 经常需要对自变量进行筛选 比如我们有 200 个候选自变量 通常情况下 不会直接把 2000 个变量直接放到模型中去进行拟合训练 而是会用一些方法 从这 200 个自变量中挑选一些出来 放进模型 形成入模变量列表 那么如何挑选入模变呢 挑

IV(informaiton Value)

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的公式

woe分析_信用评分模型中WOE、IV详解

同样,对于分组i,也会有一个对应的iv值,计算公式如下

woe分析_信用评分模型中WOE、IV详解

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

woe分析_信用评分模型中WOE、IV详解

其中,n为变量分组个数(即分箱后有多少组)

WOE(Weight of Evidence)

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

要对一个变量进行WOE编码,需要首先对这个变量进行 分组处理(也叫离散化、分箱等)分组后,对于第i组,WOE的计算公式如下

woe分析_信用评分模型中WOE、IV详解

其中

woe分析_信用评分模型中WOE、IV详解 : 这组中响应客户(风险模型中,对应的是违约客户,总之,指的是模型中预测变量取值为“是”或者1的个体)占所有样本中所有响应客户的比例

woe分析_信用评分模型中WOE、IV详解: 这组中未响应客户占样本中所有未响应客户的比例

#

woe分析_信用评分模型中WOE、IV详解: 这个组中响应客户的数量

#

woe分析_信用评分模型中WOE、IV详解: 这个组中未响应客户的数量

#

woe分析_信用评分模型中WOE、IV详解: 是样本中所有响应的数量

#

woe分析_信用评分模型中WOE、IV详解: 样本中所有未响应的数量

从上述公式中看出,WOE表示的实际上是“ 当前分组中响应客户占所有响应客户的比例”和“ 当前分组中没有响应的客户占所有没有响应的客户的比例”的差异

将公式进行变换

woe分析_信用评分模型中WOE、IV详解

可以看出,WOE可以这么理解,当前 这个组中响应的客户和未响应的比值,和所 有样本中这个比值的差异。将这两个比值在做比值,再取对数来表示。WOE越大,这种差异越大,这个分组里的样本响应的可能性就越大,WOE越小,差异越小

实例介绍IV的计算和使用

假设构建一个预测模型,该模型为了预测公司的每个客户对于某项营销活动能够响应,或者说要预测的是客户对我们这项营销活动响应的可能性有多大,假设已经从公司客户列表中随机抽取了个客户进行营销活动测试,收集了这些客户的响应结果,作为我们的建模数据集,其中响应的客户有10000各,提取部分的变量作为模型的候选变量集:

a、最近一个月是否有购买

b、最近一次购买金额

c、最近一笔购买的商品类别

d、是否是公司的VIP客户

假设,对变量进行了离散化(分箱),统计结果如下

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

woe分析_信用评分模型中WOE、IV详解

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

woe分析_信用评分模型中WOE、IV详解

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

woe分析_信用评分模型中WOE、IV详解

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

woe分析_信用评分模型中WOE、IV详解

计算WOE和IV

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

woe分析_信用评分模型中WOE、IV详解

计算WOE

将这个变量离散化为4各阶段 <100元,[100,200],[200,500],>=500元,根据公司计算WOE值

woe分析_信用评分模型中WOE、IV详解

woe分析_信用评分模型中WOE、IV详解

计算IV

woe分析_信用评分模型中WOE、IV详解

计算变量总的IV值

woe分析_信用评分模型中WOE、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.

b、最近一笔购买的商品类别:0.

c、是否是公司VIP客户:1.

d、 最近一次购买金额的IV为0.

这四各变量IV排序结果是这样的:是否是公司VIP客户 > 最近一笔购买的商品类别 > 最近一次购买金额 > 最近一个月是否有过购买,所以得出结论:“是否是公司的VIP客户”的预测能力最高的变量,“最近一个月是否有过购买”是预测能力最低的变量。

关于IV和WOE的进一步思考

为什么用IV而不是直接用WOE

(1)

从公式上看IV和WOE的差别在于IV在WOE基础上乘以的那个,我们暂且用pyn来代表这个值。

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

(2)

乘以pyn后,体现出了变量当前分组中个体的数量占整体个体数量的比例,对变量预测能力的影响。怎么理解呢?继续看举例

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

woe分析_信用评分模型中WOE、IV详解

我们从上表可以看出,当变量A取值1时,其响应比例达到了90%,非常的高,但是我们能否说变量A的预测能力非常强呢?不能。为什么呢?原因就在于,A取1时,响应比例虽然很高,但这个分组的客户数太少了,占的比例太低了。虽然,如果一个客户在A这个变量上取1,那他有90%的响应可能性,但是一个客户变量A取1的可能性本身就非常的低。所以,对于样本整体来说,变量的预测能力并没有那么强。我们分别看一下变量各分组和整体的WOE,IV。

woe分析_信用评分模型中WOE、IV详解

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

IV的极端情况以及处理方式

IV依赖WOE,并且IV是一个很好的衡量自变量对目标变量影响程度的指标。但是,使用过程中应该注意一个问题:变量的任何分组中,不应该出现响应数=0或非响应数=0的情况。

原因很简单,当变量一个分组中,响应数=0时,

woe分析_信用评分模型中WOE、IV详解

此时对应的IVi为+∞。

而当变量一个分组中,没有响应的数量 = 0时,

woe分析_信用评分模型中WOE、IV详解

此时的IVi为+∞。

IVi无论等于负无穷还是正无穷,都是没有意义的。

由上述问题我们可以看到,使用IV其实有一个缺点,就是不能自动处理变量的分组中出现响应比例为0或100%的情况。那么,遇到响应比例为0或者100%的情况,我们应该怎么做呢?建议如下:

(1)如果可能,直接把这个分组做成一个规则,作为模型的前置条件或补充条件;

(2)重新对变量进行离散化或分组,使每个分组的响应比例都不为0且不为100%,尤其是当一个分组个体数很小时(比如小于100个),强烈建议这样做,因为本身把一个分组个体数弄得很小就不是太合理。

(3)如果上面两种方法都无法使用,建议人工把该分组的响应数和非响应的数量进行一定的调整。如果响应数原本为0,可以人工调整响应数为1,如果非响应数原本为0,可以人工调整非响应数为1.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226490.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午10:46
下一篇 2026年3月16日 下午10:47


相关推荐

  • SQL聚合函数功能和用法解析

    SQL聚合函数功能和用法解析第一部分:介绍SUM和AVG  我们知道数据库通常包含大量数据,要从海量的数据中找到我们需要的某条记录无异于大海捞针,不过通过SQL语言我们可以找到很多方法从数据库中提取我们要查找的特定数据,就是通过这些方法我们才能找到“列举出七八两个月中购买了西伯利亚羊毛的所有顾客的姓名”这类问题的答案。  很多时候,我们还希望能够通过对数据进行分析,总结出规律和趋势或生成高水平的报表。例如,对于采购经理来说,…

    2022年6月21日
    31
  • 彩票APP将演绎“快鱼吃慢鱼”的发展轨迹

    彩票APP将演绎“快鱼吃慢鱼”的发展轨迹

    2021年11月16日
    32
  • html里面空格_html空格占位符

    html里面空格_html空格占位符&amp;#32;==普通的英文半角空格&amp;#160;==&amp;nbsp;==&amp;#xA0;==no-breakspace(普通的英文半角空格但不换行)&amp;#12288;==中文全角空格(一个中文宽度)&amp;#8194;==&amp;ensp;==en空格(半个中文宽度)&amp;#8195;==&amp;emsp;==em空格…

    2026年4月17日
    9
  • MyBatis-Spring整合 注入SqlSessionTemplate

    MyBatis-Spring整合 注入SqlSessionTemplateSqlSessionTemplateSqlSessionTemplate是MyBatis-Spring的核心。这个类负责管理MyBatis的SqlSession,调用MyBatis的SQL方法,翻译异常。SqlSessionTemplate是线程安全的。最终要的是让spring获取到SqlSessionTemplate然后注入给工具类,让工具类操作数据库

    2022年5月31日
    53
  • zt在Delphi7中屏蔽word,excel左上角的弹出菜单的关闭选项

    zt在Delphi7中屏蔽word,excel左上角的弹出菜单的关闭选项

    2021年7月21日
    66
  • 树莓派4B连接WIFI教程

    树莓派4B连接WIFI教程树莓派4B连接连接WIFI教程你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计,将会带来全新的写作体…

    2022年5月13日
    139

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号