【机器学习基础】IV和WOE值

本文介绍了WOE(Weight Of Evidence)和IV(Information Value)的概念和计算方法,它们用于评估变量在机器学习模型中的预测能力。WOE值衡量变量的预测强度,IV值则更全面地考虑了样本比例。通过WOE和IV,可以指导变量离散化,进行变量筛选,从而构建更有效的预测模型。以购买行为为例,展示了如何计算和解读WOE和IV值。
摘要由CSDN通过智能技术生成

目录

一 WOE

1.1 概念

1.2 样例

二 IV

2.1 概念

2.2 样例

三 参考材料


IV和WOE通常是用在对模型的特征筛选,在模型刚建立时,选择的变量往往比较多,这个时候就需要有一种方法来帮助我们衡量什么变量应该进入模型什么变量应该舍弃,IV和WOE就可以帮助我们进行衡量。对于一个变量来说,我们考虑该变量是否可以加入预测一般可以考虑以下五个因素:(1)变量的预测能力(2)变量的鲁棒性(3)变量在业务上的可解释性(4)变量的生成难度(5)变量之间的相关性。

对于上述的第一点,就可以用IV和WOE值来进行判断,值越大就表示预测能力越强。计算WOE和IV是评分卡模型的一个重要环节,比如判断用户收入对用户是否会发生逾期的预测强度。这两个值有两个方面的应用:

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

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

接下来看看WOE和IV的计算方法。

一 WOE

1.1 概念

WOE(Weight Of Evidence)用来衡量变量的预测强度,要使用WOE的话,首先要对变量进行分箱,分箱之后,对于其中第i组的WOE值公式如下:

                                                      

WOE编码和IV是一种常用的特征工程方法,它们可以用于衡量一个特征与目标变量之间的关联程度和预测能力。下面是Python计算IVWOE编码的示例代码: ```python import pandas as pd import numpy as np def calc_woe_iv(df, col, target): """ 计算指定特征的WOE编码和IV :param df: 数据集 :param col: 特征列名 :param target: 目标变量列名 :return: WOE编码和IV """ # 计算该特征每个取的数量和占比 freq = pd.DataFrame({'total': df.groupby(col)[target].count(), 'bad': df.groupby(col)[target].sum()}) freq['good'] = freq['total'] - freq['bad'] freq['bad_rate'] = freq['bad'] / freq['bad'].sum() freq['good_rate'] = freq['good'] / freq['good'].sum() # 防止出现除0错误 freq.loc[freq['bad_rate'] == 0, 'bad_rate'] = 0.0001 freq.loc[freq['good_rate'] == 0, 'good_rate'] = 0.0001 # 计算WOE编码 freq['woe'] = np.log(freq['good_rate'] / freq['bad_rate']) # 计算IV freq['iv'] = (freq['good_rate'] - freq['bad_rate']) * freq['woe'] iv = freq['iv'].sum() return freq[['woe', 'iv']].reset_index().rename(columns={col: 'value'}), iv ``` 这个函数的输入参数包括数据集`df`、特征列名`col`和目标变量列名`target`,输出WOE编码和IV。在函数中,我们首先计算了该特征每个取的数量、坏样本数量、好样本数量、坏样本率、好样本率和WOE,然后根据IV的公式计算了每个取对应的IV,并将它们相加得到总的IV。最后,我们将WOE编码和IV合并成一个DataFrame并返回。 需要注意的是,代码中为了避免出现除0错误,我们在计算WOE编码和IV时对分母加上了一个极小0.0001。同时,WOE编码和IV的计算方式可以根据具体的业务需求进行调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值