在往期的文章中,小编多次写到过WOE和IV值的内容,也贴过相关的SAS代码,感兴趣的同学可以翻阅历史消息。这篇文章就不多介绍WOE及IV值的概念,主要讲讲怎么用python实现WOE编码和IV值的计算。
代码
实例
下面用UCI信用卡逾期数据集介绍一下以上代码的用法。
数据集如下:
数据集有20多个变量,其中响应变量是 'default payment next month',为了方便,将其改名为 'y'。
现在小编想要对年龄(AGE)变量做WOE编码。
这里的年龄是连续型变量,首先需要进行分箱。方法有很多种,这里我们可以用上一篇文章中介绍的卡方分箱算法对AGE进行分箱。
分箱的切分点
有了切分点,对AGE变量切分,得到分组值:
然后计算各组的WOE值:
也可以计算IV值。
IV值0.023,看样子还是比较弱的变量。还是可以用的,所以需要转成WOE。
需要说明的是对于类别型的变量,可以直接算woe编码,也可以合并类别后再编码。
本文的代码没有做多少封装,主要是便于各位同学理解。当然,也有许多值得探讨的问题,如除以0的情况怎么处理,本文不打算深入探究,感兴趣的同学可以自己学习研究。
今天的内容就介绍这么多,谢谢大家的支持~~
领取专属 10元无门槛券
私享最新 技术干货