python信用评分卡建模(附代码,博主录制)

WOE1-Feature Selection 相关:一个计算WOE和Information Value的python工具-LMLPHP

https://zhuanlan.zhihu.com/p/20603744参考

在机器学习的二分类问题中,WOE(Weight of Evidence)和Information Value的用来对输入变量进行编码及预测能力评估。安利一下自己写的用来计算这两个值的python工具,目前没有发现python有现成的工具,就自己写了一个。

GitHub地址:GitHub - patrick201/information_value

这两个公式的原始出处没有找到,但现在公开资料解释已经很多了,公式偷懒截图公式如下(来自引用的新浪博客),附上的引用链接有一个很好的举例说明。

IV的公式借鉴了信息熵的公式,形式上长的很像但不完全相同。IV本质上市WOE的加权和,而WOE反应的是logistic回归中odds ratio的概念ln(p1 / p0),再看其前面的权重p1 - p0也反应的是这个意思。所以可以理解成IV是对这个变量在概率优势上的能力打分。

WOE1-Feature Selection 相关:一个计算WOE和Information Value的python工具-LMLPHP

特征变量的每个category都对应一个WOE值。比如例子引用中的年龄变量划分了4个变量,对应的有4个WOE值;再将它们加权求和之后就得到这个变量的IV值。IV值可以用来评估该变量预测能力的强弱。引用文章中给出了一个判断的标准,直接贴在下。这个标准作为一个参考吧,具体用的时候得结合手头的数据集具体分析。

Information Value Predictive Power< 0.02useless for prediction0.02 to 0.1Weak predictor0.1 to 0.3Medium predictor0.3 to 0.5Strong predictor >0.5Suspicious or too good to be true

目前就一个工具类information_value.py,里面主要就下面几个方法。需要在传入前将数据集自己做离散化,否则目前只会默认无脑的做“5等分”离散化。:)

woe -- 计算输入数据集每个变量的woe和iv,并返回所有变量对应这两个值的列表,woe是一个字典dictionary的列表,因为不同的变量有不同的category取值。

woe_single_x -- 计算单个变量的woe和iv。

woe_replace -- 将数据集中变量的category取值用其对应的woe值替换,并返回替换后的数据集。有的实验称用woe替换后训练的分类器能会更好,所以提供了这么个函数。

combined_iv -- 计算将一些变量组合后对应的woe及iv值。这个函数主要是想服务于一些需要大量迭代的变量选择技术,比如有的文献提到用GA或PSO算法来选择优化的变量组合。而如果将iv计算来作为迭代时的“fit function”,计算量是非常小的。但是如果组合的变量太多的话,组合起来的category类别会很多,影响使用,所以合适组合的变量数量需要根据手头的数据量及分布情况来试验。

试验了一个scikit learn自带的数据集(当然自带的这个相对容易分类),在“评估变量重要性”这个方向上与随机森林方法进行了比较,结果如下两个图。可以看到前几个“很重要”的变量,以及最后几个“很不重要”的变量,根据IV评估的结果与RF给出的结果是很相近的。但是IV的计算量要比训练一个随机森林模型小多了。当然并不是每个手头的数据都能符合这样的结果,需要具体试验,但至少多了一个选择可以供我们参考。如果IV的结果能近似达到RF的结果,在大规模进行计算的时候也是一个挺吸引人的备选项。

随机森林中队变量重要性计算的思路很有意思,对某个自变量加随机扰动bump,然后看预测误差前后变化有多大。越大的认为这个变量对结果越有影响,也就是越重要。这与以前在银行工作时pricing框架下计算奇异衍生品组合的greeks思路很像,后者也是对影响衍生品的风险因子进行bump看组合的pv(present value)变化多少。实用又神奇的思路。

根据使用的情况我会尽量不断调整修改代码,欢迎大家试用并轻拍。Feature Selection是个巨大的坑,但希望我的小身板也能做些力所能及的。:)

WOE1-Feature Selection 相关:一个计算WOE和Information Value的python工具-LMLPHP

WOE1-Feature Selection 相关:一个计算WOE和Information Value的python工具-LMLPHP

python风控建模实战lendingClub(博主录制,catboost,lightgbm建模,2K超清分辨率)

https://study.163.com/course/courseMain.htm?courseId=1005988013&share=2&shareId=400000000398149

WOE1-Feature Selection 相关:一个计算WOE和Information Value的python工具-LMLPHP

微信扫二维码,免费学习更多python资源

WOE1-Feature Selection 相关:一个计算WOE和Information Value的python工具-LMLPHP

05-12 10:51