精华内容
下载资源
问答
  • IV值

    万次阅读 2017-08-30 16:26:00
    其中在变量处理的时候涉及IV值和WOE值的计算。 基于抽样后得到训练样本集数据,由于变量数量通常较多,不推荐直接采用逐步回归的方法进行筛选。 由于各个变量的量纲和取值区间存在很大的差别,通常会对变量的取值...

    评分模型开发主要分为变量处理、模型建立、评分转换、模型评估4个步骤。
    其中在变量处理的时候涉及IV值和WOE值的计算。

    基于抽样后得到训练样本集数据,由于变量数量通常较多,不推荐直接采用逐步回归的方法进行筛选。
    由于各个变量的量纲和取值区间存在很大的差别,通常会对变量的取值进行分箱并计算 证据权重 WOE值(weight of evidence) ,从而降低变量属性的个数,并且平滑的变量的变化趋势。

    接下来,在此基础上计算 信息价值IV(information value) ,
    **一般我们选择 IV值大于0.02的那些变量进入模型。
    如果IV值大于 0.5 ,改变量就是属于过预测变量,通常被选座分群变量,将样本拆分成多个群体,针对不同的群体分别开发评分卡。**

    分群的依据通常也会根据业务上的需要进行设定,常见以区域变量作为分群的标准。

    证据权重WOE是用来衡量变量某个熟悉的风险的指标,WOE的计算公式:
    这里写图片描述

    这里写图片描述

    WOE 的值越高,代表着该分组中客户是坏客户的风险越低。

    IV值是用来衡量某个变量对好坏客户区分能力的一个指标,IV值公式如下:

    这里写图片描述

    IV值越大表示好坏客户在该变量上的分布差异就越大,也就是该变量的区分能力就越好。

    对于IV值的解释预测力
    这里写图片描述

    R语言计算IV值很方便:
    代码如下:

    library('smbinning')  #最优分箱
    library('DMwR')  #检测离群值
    library('xlsx')  
    
    
    ###客户基本信息 和 征信数据衍生变量
    #readFilePath<-"F:/TS/Lending_Club/05_middle/data_loan.csv"
    readFilePath<-"C:/Users/Administrator/Desktop/df7.csv"
    df<-read.csv(readFilePath)
    head(df)
    names(df)
    
    
    #smbinning(df, y, x, p = 0.05)
    #df: 数据
    #y: 二分类变量(0,1) 整型
    #x:连续变量:至少满足10 个不同值,取值范围有限
    #p:每个Bin记录数占比,默认5% (0.05) 范围0%-50%
    #smbinning.plot, smbinning.sql,and smbinning.gen.
    
    
    result1<-smbinning(df=df,x="acc_open_past_24mths",y="y",p=0.05)
    smbinning.plot(result1,option="WoE",sub="acc_open_past_24mths")
    r1 <- merge(result1$x,result1$ivtable)
    
    result2<-smbinning(df=df,x="inq_last_12m",y="y",p=0.05)
    smbinning.plot(result2,option="WoE",sub="inq_last_12m")
    r2 <- merge(result2$x,result2$ivtable)
    
    r_total <- rbind(r1,r2)
    outFilePath <- "F:/TS/Lending_Club/04_output/03_r_smbining/r_best_binging.xlsx"
    write.xlsx(r_total, outFilePath)  
    
    ####################################################################################
    # Information Value for all variables in one step ---------------------------
    smbinning.sumiv(df=df,y="y") # IV for eache variable
    
    # Plot IV for all variables -------------------------------------------------
    sumivt=smbinning.sumiv(df,y="y")
    sumivt # Display table with IV by characteristic
    par(mfrow=c(1,1))
    smbinning.sumiv.plot(sumivt,cex=1) # Plot IV summary table
    
    ####################################################################################

    [1]参考资料:《SAS开发经典案例解析》(杨驰然)

    展开全文
  • IV值实现公式.xls

    2020-04-15 16:14:51
    IV值计算逻辑;使用excel中的公式,对IV和woe值进行计算,可以有效的理解公式含义和实现逻辑;
  • 今天小编就为大家分享一篇Python计算IV值的示例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 本pdf简要精辟的介绍了IV值理论,做特征筛选时能够高效的计算IV值
  • IV值区间与预测能力关系

    千次阅读 2019-01-21 15:16:45
    IV值区间与预测能力关系 IV值的全称是information value,中文的就是信息量或信息值,其主要作用就是当我们在用决策树或逻辑回归构建分类模型时对变量进行筛选。IV值就是衡量自变量的预测能力的大小,与其相似的...

    IV值区间与预测能力关系

    IV值的全称是information value,中文的就是信息量或信息值,其主要作用就是当我们在用决策树或逻辑回归构建分类模型时对变量进行筛选。IV值就是衡量自变量的预测能力的大小,与其相似的还有信息增益、基尼系数等。

    计算方式:

    IV值区间与预测能力关系:

    但是IV不是越高越好的,当IV>1.2时候,可能分箱不好或者存在因果倒置关系

    展开全文
  • IV值和woe

    2020-07-24 21:38:32
    IV值和woe 1. 对IV的直观理解 从直观逻辑上大体可以这样理解“用IV去衡量变量预测能力”这件事情:我们假设在一个分类问题中,目标变量的类别有两类:Y1,Y2。对于一个待预测的个体A,要判断A属于Y1还是Y2,我们是...

    IV值和woe

    1. 对IV的直观理解

    从直观逻辑上大体可以这样理解“用IV去衡量变量预测能力”这件事情:我们假设在一个分类问题中,目标变量的类别有两类:Y1,Y2。对于一个待预测的个体A,要判断A属于Y1还是Y2,我们是需要一定的信息的,假设这个信息总量是I,而这些所需要的信息,就蕴含在所有的自变量C1,C2,C3,……,Cn中,那么,对于其中的一个变量Ci来说,其蕴含的信息越多,那么它对于判断A属于Y1还是Y2的贡献就越大,Ci的信息价值就越大,Ci的IV就越大,它就越应该进入到入模变量列表中。

    2. IV的计算

    前面我们从感性角度和逻辑层面对IV进行了解释和描述,那么回到数学层面,对于一个待评估变量,他的IV值究竟如何计算呢?为了介绍IV的计算方法,我们首先需要认识和理解另一个概念——WOE,因为IV的计算是以WOE为基础的。

    2.1WOE

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

    要对一个变量进行WOE编码,需要首先把这个变量进行分组处理(也叫离散化、分箱等等,说的都是一个意思)。分组后,对于第i组,WOE的计算公式如下:
    在这里插入图片描述
    其中,pyi是这个变量中包含分类为1的客户(风险模型中,对应的是违约客户,总之,指的是模型中预测变量取值为“是”或者说1的个体)占所有样本中所有分类为1客户的比例,pni是这个组中分类为0的客户占样本中所有分类为0的客户的比例,#yi是这个组中分类为1的客户的数量,#ni是这个组中分类为0的客户的数量,#yT是样本中所有分类为1的客户的数量,#nT是样本中所有分类为0的客户的数量。

    从这个公式中我们可以体会到,WOE表示的实际上是“当前分组中响应客户占所有响应客户的比例”和“当前分组中没有响应的客户占所有没有响应的客户的比例”的差异。

    对这个公式做一个简单变换,可以得到:
    在这里插入图片描述
    变换以后我们可以看出,WOE也可以这么理解,他表示的是当前这个变量中分类为1的客户占全部分类为1客户的比例和这个变量中分类为0的客户占全部分类为0客户的比例的比值,然后再取对数,如果WOE值越大,这个变量中的样本分类为1的可能性就越大,WOE越小,这个变量中的样本为1的可能性就越小。

    2.2 IV的计算公式

    有了前面的介绍,我们可以正式给出IV的计算公式。对于一个分组后的变量,第i 组的WOE前面已经介绍过,是这样计算的:

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

    其中,n为变量分组个数。

    3.3 用实例介绍IV的计算和使用

    下面我们通过一个实例来讲解一下IV的使用方式。

    3.3.1 实例

    假设我们需要构建一个预测模型,这个模型是为了预测公司的客户集合中的每个客户对于我们的某项营销活动是否能够响应,或者说我们要预测的是客户对我们的这项营销活动响应的可能性有多大。假设我们已经从公司客户列表中随机抽取了100000个客户进行了营销活动测试,收集了这些客户的响应结果,作为我们的建模数据集,其中响应的客户有10000个。另外假设我们也已经提取到了这些客户的一些变量,作为我们模型的候选变量集,这些变量包括以下这些(实际情况中,我们拥有的变量可能比这些多得多,这里列出的变量仅仅是为了说明我们的问题):

    • 最近一个月是否有购买;
    • 最近一次购买金额;
    • 最近一笔购买的商品类别;
    • 是否是公司VIP客户;
    • 假设,我们已经对这些变量进行了离散化,统计的结果如下面几张表所示。

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

    3.3.2 计算WOE和IV

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

    在这里插入图片描述

    我们把这个变量离散化为了4个分段:<100元,[100,200),[200,500),>=500元。首先,根据WOE计算公式,这四个分段的WOE分别为:

    在这里插入图片描述

    插播一段,从上面的计算结果中我们可以看一下WOE的基本特点:

    当前分组中,响应的比例越大,WOE值越大;
    当前分组WOE的正负,由当前分组响应和未响应的比例,与样本整体响应和未响应的比例的大小关系决定,当前分组的比例小于样本整体比例时,WOE为负,当前分组的比例大于整体比例时,WOE为正,当前分组的比例和整体比例相等时,WOE为0。
    WOE的取值范围是全体实数。
    我们进一步理解一下WOE,会发现,WOE其实描述了变量当前这个分组,对判断个体是否会响应(或者说属于哪个类)所起到影响方向和大小,当WOE为正时,变量当前取值对判断个体是否会响应起到的正向的影响,当WOE为负时,起到了负向影响。而WOE值的大小,则是这个影响的大小的体现。

    好,回到正题,计算完WOE,我们分别计算四个分组的IV值:

    在这里插入图片描述

    再插播一段,从上面IV的计算结果我们可以看出IV的以下特点:

    • 当前分组中,响应的比例越大,WOE值越大;
    • 当前分组WOE的正负,由当前分组响应和未响应的比例,与样本整体响应和未响应的比例的大小关系决定,当前分组的比例小于样本整体比例时,WOE为负,当前分组的比例大于整体比例时,WOE为正,当前分组的比例和整体比例相等时,WOE为0。
    • WOE的取值范围是全体实数

    对于变量的一个分组,这个分组的响应和未响应的比例与样本整体响应和未响应的比例相差越大,IV值越大,否则,IV值越小;
    极端情况下,当前分组的响应和未响应的比例和样本整体的响应和未响应的比例相等时,IV值为0;
    IV值的取值范围是[0,+∞),且,当当前分组中只包含响应客户或者未响应客户时,IV = +∞。

    好,回到正题,计算完WOE,我们分别计算四个分组的IV值:
    在这里插入图片描述
    再插播一段,从上面IV的计算结果我们可以看出IV的以下特点:

    • 对于变量的一个分组,这个分组的响应和未响应的比例与样本整体响应和未响应的比例相差越大,IV值越大,否则,IV值越小;
    • 极端情况下,当前分组的响应和未响应的比例和样本整体的响应和未响应的比例相等时,IV值为0;
    • IV值的取值范围是[0,+∞),且,当当前分组中只包含响应客户或者未响应客户时,IV = +∞。

    OK,再次回到正题。最后,我们计算变量总IV值:
    在这里插入图片描述

    3.3 IV值的比较和变量预测能力的排序

    我们已经计算了四个变量中其中一个的WOE和IV值。另外三个的计算过程我们不再详细的说明,直接给出IV结果。

    • 最近一个月是否有过购买:0.250224725
    • 最近一笔购买的商品类别:0.615275563
    • 是否是公司VIP客户:1.56550367
    • 前面我们已经计算过,最近一次购买金额的IV为0.49270645

    这四个变量IV排序结果是这样的:是否是公司VIP客户 > 最近一笔购买的商品类别 > 最近一次购买金额 > 最近一个月是否有过购买。我们发现“是否是公司VIP客户”是预测能力最高的变量,“最近一个月是否有过购买”是预测能力最低的变量。如果我们需要在这四个变量中去挑选变量,就可以根据IV从高到低去挑选了。

    下面写上计算IV值和WOE的代码:

    import pandas as pd
    import math
    def IV(pyi,pni,woe):
        return (pyi-pni)*woe
    def WOE(loc,y,df):
        m=df.groupby([loc]).count()
        n=df.groupby([y]).count()
        pyi=m.iloc[0][-1]/n.iloc[0][-1]
        pni=m.iloc[1][-1]/n.iloc[1][-1]
        m=pyi/pni
        return pyi,pni,math.log(m,math.e)
    data=pd.read_csv("数据集/train.csv")
    pyi,pni,woe=WOE("forum_business","hot",data)
    iv=IV(pyi,pni,woe)
    print(woe,iv)
    

    文章参考:https://blog.csdn.net/iModel/article/details/79420437

    展开全文
  • 特征筛选之—IV值

    千次阅读 2020-11-06 18:23:14
    IV(Infromation Value),信息价值,用来表示特征对目标预测的贡献程度,即特征的预测能力,一般来说,IV值越高,该特征的预测能力越强,信息贡献程度越高。 二.限定条件 IV值的计算有一定的限定条件: (1)...

    一.定义

    IV(Infromation Value),信息价值,用来表示特征对目标预测的贡献程度,即特征的预测能力,一般来说,IV值越高,该特征的预测能力越强,信息贡献程度越高。

    二.限定条件

    IV值的计算有一定的限定条件:

    (1)面向的任务必须是有监督的任务;

    (2)预测目标必须是二分类的。

    三.IV取值区间及常用评价基准

    IV值的取值区间为:[0,正无穷)。

    IV值取值含义:

    (1)IV<0.02:无用特征

    (2)0.02<IV<0.1:弱价值特征

    (3)0.1<IV<0.3:中价值特征

    (4)0.3<IV<0.5:强价值特征

    (5)IV>0.5:价值过高,不真实

    四.计算方式

    由于IV值的计算是以WOE值为基础的,所以计算IV值之前,首先得计算WOE值。

    (1)WOE

    • WOE定义:Weight Of Evidence,证据权重,表示描述一个可预测的变量与二分类变量之间的关系。
    • 使用:在使用WOE之前,需要对变量进行分箱处理,分箱的操作包括:对于连续型变量可以采用:等距分箱,等频分箱,自定义间隔;对于离散型变量,如分箱太多,可以进行分箱合并。
    • 等距分箱:即按照区间距离来划分,不能保证每个分箱中含有相同的变量数;等频分箱:根据频率划分,可以保证每个分箱中含有相同的变量数。
    • 计算公式:

    • 公式描述:可以看出WOE是基于每个分箱中的变量进行计算的,对于每个分箱,分别计算bin_good(好人数),bin_bad(坏人数),分别除以全量数据中的好人总数(total_goods)和坏人总数(total_bads),得到每个分箱内的边际好人占比(margin_good_rate)和边际坏人占比(margin_bad_rate)。
    • 故WOE计算方式也可表示为:

    • 公式理解:WOE表示的是当前分箱当中,“坏人数量占所有样本中坏人数量的比例”,与“好人数量占所有样本中坏好人数量的比例”。如果差异越大,那么该分箱响应坏人的可能性就越大;当差异越小时,该分箱响应的坏人的可能性就越小。

    (2)IV

    • 计算方式:

    • 公式理解:IV值的计算是对WOE值的加权和,是用来衡量WOE表示的变量对二分类变量之间关系的强度。

    五.一些注意的点

    • 贝叶斯角度理解WOE:引入后验经验的变量后,WOE值是修正先验odds与后验odds之间距离的增量,可理解为对先验的一个增益,这也是WOE称作“证据权重”的一个原因。所以IV值对OWE的加权也是更加计算出来了该特征下对目标变量的一个增益情况。
    • WOE与Odds Ratio(OR):OR的值与逻辑回归具有关联性,即当逻辑回归中的变量变化值为1时,odds的变化是e^{a},a是当前特征变量下的权重。
    • WOE的变化趋势是与odds的变化趋势是一致的,WOE单调递增时,odds也是单调递增的;WOE曲线越抖,好人与坏人的区分越明显。

     

    展开全文
  • IV值和WOE值的理解

    2019-06-14 09:37:43
    这篇文章是我认为对IV和WOE解释比较好的博客,在做信贷领域风控建模的时候,我们针对评分卡模型,一般性的将数据自变量与因变量之间通过IV值做一次筛选,为便于以后查阅,自己全篇抄录下来,如有其他需要,请联系该...
  • IV值的计算逻辑

    2020-04-15 16:16:18
    在建模的时候,我们对会单个变量的预测能力进行预测,主要使用IV值这个指标,IV值的预测能力如下: IV<=0.02 : 无预测能力; 0.02 - 0.1 :弱预测能力; 0.1 - 0.3 :中预测能力; 0.3 - 0.5 :强预测...
  • python 计算变量的IV值

    千次阅读 2019-07-09 16:58:16
    特征变量IV值的大小即表示该变量预测能力的强弱,在面对大量变量的情况下,可计算各个变量的IV值,取IV值大于某个固定值的变量参与到模型中去,这样不仅保留了特征携带的信息量。且提高了模型效率,此外有利于给客户...
  • python计算IV值

    2018-05-26 09:30:00
    更多建模、大数据分析等内容请关注gongzhonghao...在对变量分箱后,需要计算变量的重要性,IV是评估变量区分度或重要性的统计量之一,python计算IV值的代码如下: def CalcIV(Xvar, Yvar): N_0 = np....
  • iv值计算(含qcut细节)1 背景2 含有重复的数据2.1 数据准备2.2 等频分组2.3 等频分组-加上去掉重复的值3 不含有重复的数据3.1 数据准备3.2 等频分组3.3 等频分组-加上去掉重复值4 iv计算4.1 读入数据4.2 iv值计算...
  • 图示代码,轻松解决IV值计算问题(python)

    万次阅读 多人点赞 2018-09-03 03:14:07
    今天来讲一下IV值的计算问题 因本人从事风控建模行业,故不可避免需要明白IV值的整个今生前世,故此次来讲解IV值。 一、IV的定义及必备常见知识 IV是什么?全称是InformationValue,中文意思是信息价值,或者信息...
  • R语言计算IV值

    2018-05-23 21:59:00
    在对变量分箱后,需要计算变量的重要性,IV是评估变量区分度或重要性的统计量之一,R语言计算IV值的代码如下: CalcIV <- function(df_bin, key_var, y_var){ N_0<-table(df_bin[, y_var])[1] N_1<-...
  • IV衡量的是某一个变量的信息量,从公式来看的话,相当于是自变量WOE值的一个加权求和,其值的大小决定了自变量对于目标变量的影响程度,对于分组 i ,其对应的IV值参考下图,其中n是分组个数,注意,在变量的任何...
  •  这次暂时先用学长计算好的iv值挑选特征,之后再尝试自己计算iv值。选择iv在0.1-0.5之间的特征。 import pandas as pd iv = pd.read_csv("iv.csv",encoding='gbk') iv_one = iv[iv.iloc[...
  • python计算IV值及使用

    2018-05-26 17:56:05
    在对变量分箱后,需要计算变量的重要性,IV是评估变量区分度或重要性的统计量之一,python计算IV值的代码如下: def CalcIV(Xvar, Yvar): N_0 = np.sum(Yvar==0) N_1 = np.sum(Yvar==1) N_0_group = np.zeros(np...
  • R语言计算IV值及使用

    2018-05-26 17:57:35
    在对变量分箱后,需要计算变量的重要性,IV是评估变量区分度或重要性的统计量之一,R语言计算IV值的代码如下: CalcIV <- function(df_bin, key_var, y_var){ N_0<-table(df_bin[, y_var])[1] N_1<-table...
  • WOE IV值

    千次阅读 2018-02-23 16:24:42
    转载:评分卡模型剖析之一(woe、IV、ROC、信息熵)  在开发信用评分卡模型时,连续变量的离散化是特征工程的重要步骤之一,主要是将连续变量转换为离散变量,同时根据不同分段对目标变量的影响力作数值转换。  ...
  • 在往期的文章中,小编多次写到过WOE和IV值的内容,也贴过相关的SAS代码,感兴趣的同学可以翻阅历史消息。这篇文章就不多介绍WOE及IV值的概念,主要讲讲怎么用python实现WOE编码和IV值的计算。 代码 实例 ...
  • 学习笔记(九)用IV值和随机森林挑选特征特征筛选 (判定贷款用户是否逾期)1. IV值进行特征选择1.1 IV的计算1.1.1 WOE的计算1.2 IV的计算公式代码实现2. 随机森林进行特征选择1. 随机森林简单理解代码的实现总结 ...
  • 常用的评分卡模型中需要先对变量进行离散化处理,在大规模数据集中,可以使用数据库本身自带的分位数或者排序函数对变量进行分箱处理后,然后直接计算WOE、IV值。 一、SQL分箱操作 1、建立箱段表 ----model为建模...
  • R语言的WOE和IV批量计算实现,运行代码后根据注释中的参数描述调用函数即可
  • pandas 计算IV值方法

    2020-05-26 16:43:01
    = label_columnName] # column names except label column # calculate IV value for category column IV_value = dict() for col in columns1: iv_sum = 0 # 统计每个变量的iv值 t = train_data[col].unique().to...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 58,540
精华内容 23,416
关键字:

iv值