【介绍】一篇入门之-评分卡-IV值是什么

2025-09-18 19:12:50

本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com

在评分卡中,经常用IV值来判断一个变量是否有价值,或作为入模的筛选条件

本文讲解IV值的计算公式,并展示一个具体的计算例子,以及IV值在评分卡中的常见应用

通过本文,可以了解IV值如何计算,IV值多少才有效,以及如何使用代码计算IV值

01. 评分卡-IV值是什么

本节讲解IV值是什么,并展示IV值的计算公式与计算例子

IV值的计算公式

IV值是什么IV全称为信息价值(Information Value),它常在评分卡中用于筛选变量IV的原理是通过评估好、坏样本在变量分布上的差异,从而评估变量对y的信息价值 如图所示,已知好、坏样本在枚举变量上的分布,然后用IV来评估两者的差异如果IV值较大,则说明该变量有用,对y的预测有价值,反之,如果IV值较小,则说明没有太大价值IV的计算公式 IV的计算公式如下: 往往也简记为如下形式: 其中, :坏样本总个数 :坏样本且X为第i组的个数 :好样本且X为第i组的个数 :好样本总个数 备注:IV公式里的 即

02. IV值-计算例子与应用

本节讲解IV值的具体计算例子,以及在评分卡中的用途

IV值的计算实例

以性别变量为例,性别变量共有三个级别:男、女、其它,如下: 以上述数据为例,通过下表的计算,就可得到性别变量的IV值: 如表,IV的计算共三个步骤:一、统计各个分组里好坏样本的个数,并算得好坏样本的总数 二、计算各个分组里好、坏样本在"好、坏总样本"的占比三、根据公式算出每组的IV四、将每组的IV进行求和,就得到变量的IV值

IV值在评分卡中的应用

IV值在评分卡中的应用场景 在评分卡中,IV值一般有如下的应用1. 将IV作为变量价值的参考值 即在变量分析时,把IV值计算出来,作为参考 2. 使用IV值来筛掉无效变量 当评分卡的变量很多时,往往会用IV值对变量进行初筛 一般把IV值大于0.1的变量都保留下来,进行下一步分析在变量很多的时候,这样可以大大减少需要分析的变量 3. 使用IV值来选择入模变量 在自动化建模时,要求无人工参与,此时可以使用IV值来选择入模变量 例如选择IV值大于0.2的变量进行建模,这样可以使建模自动化IV值多少才有效IV值越高,变量的价值越高,一般来说,IV值与变量对好坏客户的区分度的关系如下:IV < 0.02 :几乎没有区分度, 0.02 <= IV < 0.1 :有微弱的区分度; 0.1 <= IV < 0.3 :有明显的区分度; 0.3 >= IV :较强的区分度 备注:IV值小并不说明变量完全无效,它仅作为参考值,并不是变量有效性的绝对评估

03. IV值-代码实现

本节展示IV值计算的具体代码实现

IV值计算-代码实现

IV值的计算只需将样本的好、坏占比统计出来,再用公式计算就可以了‘具体代码实现如下:"""

本代码用于展示如何计算变量的IV值

本代码来自《老饼讲解-机器学习》www.bbbdata.com

"""

import numpy as np

import pandas as pd

# 函数:用于计算变量的IV

def cal_iv(data):

bad_tt = data['y'].sum() # 坏客户个数

good_tt = data.shape[0] -bad_tt # 好客户个数

df = data.groupby('x')['y'].agg([('bad_cn','sum'),('cn','count')]) # 按组别统计坏客户个数与总客户个数

df['good_cn']=df['cn'] -df['bad_cn'] # 各组的好客户个数

df.loc[df['bad_cn'] ==0,'bad_cn' ] = 1 # 如果坏客户个数为0,则设为1.这样计算iv才不报错

df.loc[df['good_cn']==0,'good_cn'] = 1 # 如果好客户个数为0,则设为1.这样计算iv才不报错

df['bad_rate'] = df['bad_cn']/bad_tt # 坏客户占比

df['good_rate'] = df['good_cn']/good_tt # 好客户占比

df['iv'] =(df['bad_rate']-df['good_rate'])* np.log(df['bad_rate']/df['good_rate']) # 按公式计算IV值

iv = df['iv'].sum() # 计算总的IV值

return iv # 返回IV值

# iv计算的应用示例

data = pd.DataFrame({

'x': ['男','男', '男','男','女','女','女','女','其它','其它','其它'], # 用于计算IV的数据

'y': [1,1,0,0,0,0,0,1,1,1,0]

})

iv = cal_iv(data) # 计算IV值

print('\n数据:\n',data) # 打印变量的数据

print('\niv值:',iv) # 打印变量的IV值

代码运行结果如下: 从结果可以看到,IV值为0.49,它大于0.3,说明变量在好、坏客户的分布上具有较大的区别,即变量对y有很明显的贡献

好了,以上就是评分卡中IV值的计算公式以及计算例子了~

End

葉的解释
乌龟能活多久,不同种类的龟的寿命不同