特征工程 | 信息价值IV与群体稳定性PSI

关键词:特征筛选,信息量,稳定性


文章目录

  • 特征工程 | 信息价值IV与群体稳定性PSI
  • 前言
  • 一、信息价值IV
    • 1.1 使用条件
    • 1.2 评价基准
    • 1.3 计算原理
      • a. WOE计算
      • b. IV计算
  • 二、群体稳定性PSI
    • 2.1 使用条件
    • 2.2 评价基准
    • 2.2 计算原理
    • 2.3 延展思考
  • 三、总结
  • 四、代码附录

前言

基于IV与PSI的筛选方法主要应用于“金融风控”场景,该场景下,稳定性压倒一切,一套模型正式上线后往往很久才迭代一次。因此对于特征工程层面,提出了信息量足够且稳定性高的要求。

IV与PSI结合,可快速从特征集合中筛选出同时具备“信息量充足且时间稳定性强”的特征,用于后续模型训练。

优点:

  • 特别适合以随时间周期变化而表现敏感的业务场景,如金融风控,电销推荐,用户增长等;
  • 可解释性强

一、信息价值IV

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

1.1 使用条件

IV值的计算有基础的限定条件

  • 模型为有监督学习
  • 二分类场景
  • 连续型特征必须分箱处理

1.2 评价基准

取值 含义
IV<0.02 无用特征
0.02<IV<0.1 弱价值特征
0.1<IV<0.3 中价值特征
0.3<IV<0.5 强价值特征
IV>0.5 价值过高,不真实

1.3 计算原理

首先,IV的计算是建立在WOE值的基础之上

a. WOE计算

  • 定义:Weight Of Evidence,证据权重,表示描述一个可预测的变量与二分类变量之间的关系。

  • 通俗定义:对每一特征下的每种取值,统计该取值下的正负样本数量与该特征下的正负样本数量之间的关系

  • 计算公式
    WOEi=ln(NegiNegT/PosiPosT)=ln(NegiNegT)−ln(PosiPosT)WOE_i=ln(\frac{Neg_i}{Neg_T}/\frac{Pos_i}{Pos_T})=ln(\frac{Neg_i}{Neg_T})-ln(\frac{Pos_i}{Pos_T})WOEi​=ln(NegT​Negi​​/PosT​Posi​​)=ln(NegT​Negi​​)−ln(PosT​Posi​​)

其中:
        T代表某一特征,i为该特征下的某一取值。对于连续型特征而言,i为该特征下的某一分箱结果;
        Neg: 负样本, Pos:正样本;

  • 公式原理:
        WOE是基于每一特征下的每种取值进行计算的(对于数值型特征,需要进行分箱处理),对于该特征下的每个取值,分别计算该取值下的pos_cnt(正样本数量),neg_cnt(负样本数量),分别除以该特征下全量数据中的正样本数量(total_pos_cnt)和负样本总数(total_neg_cnt)。因此,就能得到该特征下每个取值内的边际正样本占比(margin_good_rate)和边际负样本占比(margin_bad_rate)。

  • 通俗理解:
        WOE表示的是该特征当前取值中,“负样本数量占该特征下所有负样本数量的比例”,与“正样本数量占该特征下所有正样本中的比例”。如果差异越大,那么该取值能够分辨负样本的可能性就越大;当差异越小时,该分箱响应的坏人的可能性就越小。

  • 常见问题
    – 分箱数量,决定了平滑程度,保证每个分箱不少于5%的样本数,一般来说10箱即可。
    – 分箱种没有响应样本或全部为响应样本,即WOE计算过程中由于分子为0或分母为0,导致结果异常。可以考虑在公式中加入修正项
    WOEi=ln(Negi+0.001NegT/Posi+0.001PosT)WOE_i=ln(\frac{Neg_i+0.001}{Neg_T}/\frac{Pos_i+0.001}{Pos_T})WOEi​=ln(NegT​Negi​+0.001​/PosT​Posi​+0.001​)

  • WOE的缺点
    只考虑了每个分箱的绝对风险,但没有考虑每个分箱样本占该特征下全样本的比例,缺失了各分箱样本在全样本中的相对关系。因此引出了IV值来评估每个分箱的相对贡献。

b. IV计算

上一小节提到了WOE编码存在缺点 -> 只考虑了每个分箱的相对风险,但没有考虑每个分箱样本数量占全样本的比例。因此,IV值在WOE计算的基础上,加入了每个分箱的响应比例, 补充了每个分箱在该特征下全样本的相对贡献,贡献越低,则这个分箱对特征整体预测能力的贡献越低。

  • 定义:IV=Σin(响应比例−未响应比例)∗WOEiIV = \Sigma^n_i(响应比例-未响应比例)*WOE_iIV=Σin​(响应比例−未响应比例)∗WOEi​

  • 计算方式:
    IVi=(NegiNegT−PosiPosT)∗WOEi=(NegiNegT−PosiPosT)∗ln(NegiNegT/PosiPosT)IV_i=(\frac{Neg_i}{Neg_T}-\frac{Pos_i}{Pos_T})*WOE_i=(\frac{Neg_i}{Neg_T}-\frac{Pos_i}{Pos_T})*ln(\frac{Neg_i}{Neg_T}/\frac{Pos_i}{Pos_T})IVi​=(NegT​Negi​​−PosT​Posi​​)∗WOEi​=(NegT​Negi​​−PosT​Posi​​)∗ln(NegT​Negi​​/PosT​Posi​​)
    IV=ΣinIViIV=\Sigma^n_iIV_iIV=Σin​IVi​

  • 通俗理解:IV值的计算是对WOE值的加权和, 其中权重体现了该特征下每一取值(每一分箱)在全样本下的相对关系。

关注“人工智能与推荐算法”公众号获取更便捷的知识库!

二、群体稳定性PSI

模型是以训练集和测试集的指导下构建的,此模型是否适用于训练集与测试集之外的集群,必须经过稳定性测试才能得知。群体稳定性(population stability index)可用于衡量特征在时间分布上的稳定性。

2.1 使用条件

IV值的计算有基础的限定条件

  • 模型为有监督学习
  • 二分类场景
  • 连续型特征必须分箱处理

2.2 评价基准

PSI值的计算有基础的限定条件

  • 模型为有监督学习
  • 二分类场景
  • 连续型特征必须分箱处理
PSI范围 稳定性
0~0.1
0.1~0.25 略不稳定
>0.25 不稳定

2.2 计算原理

与IV值计算公式类似

  • 计算方式:psi=Σindex=Σ(A−E)∗ln(A/E)psi=\Sigma index=\Sigma(A-E)*ln(A/E)psi=Σindex=Σ(A−E)∗ln(A/E)

    其中:
    Index: (A−E)∗ln(A/E)(A-E)*ln(A/E)(A−E)∗ln(A/E)
    A: Actual,实际占比,可选用测试集正样本占比,A=posratiopostotalAA=\frac{pos_{ratio}}{pos_{total_A}}A=postotalA​​posratio​​
    E: Expect,预期占比,可选用训练集正样本占比,E=posratiopostotalEE=\frac{pos_{ratio}}{pos_{total_E}}E=postotalE​​posratio​​

    step.1:将特征进行离散化,即类别型特征保持不变,数值型特征进行分箱处理。这里注意,A与E的分箱/编码规则要沿用同一套标准;

    step.2: 在相同的分箱区间内,分别统计A与E的数据集合中,每一个特征下每种取值的正样本占比;

    step.3: 计算各分箱内的A - E和Ln(A / E),计算index = (实际占比 - 预期占比)* ln(实际占比 / 预期占比) ;

    step.4: 将该特征下的各取值(分箱)的index进行求和,即得到该特征的最终PSI

  • 通俗定义:通过统计该特征下所有取值在"不同数据集上的正样本率之差与之商",衡量某特征在不同数据集下的稳定性;

  • PSI的缺点:
    – 由于A与E天然存在样本分布的问题,传统psi的计算只考虑到某特征的某取值在当前集合下(A或E)的稳定性index,忽略了A与E天然存在的相对关系。
    – index的计算,忽略了各取值(分箱)在该特征下的相对贡献。

  • PSI的改良版:改良版思路以个人角度触发,仅供参考
    – 将step.2中,相同的分箱区间内,对每一种特征下的每种取值的正样本占比进行标准化,即A_std=AAmeanA\_std=\frac{A}{A_{mean}}A_std=Amean​A​,其中AmeanA_{mean}Amean​代表A集合下的整体正样本占比。同理,E_std=EEmeanE\_std=\frac{E}{E_{mean}}E_std=Emean​E​;用A_stdA\_stdA_std, E_stdE\_stdE_std替代原公式的A与E,通过标准化的手段解决了A与E天然存在的相对关系不一致的问题;

    – 在上一步结果计算后,统计各取值在该特征下的样本占比,即index=该取值在该特征下的样本占比∗indexindex=该取值在该特征下的样本占比*indexindex=该取值在该特征下的样本占比∗index,即psi=Σcntratio∗indexpsi=\Sigma cnt_{ratio}*indexpsi=Σcntratio​∗index,通过对index进行了加权得到了各取值在该特征下的相对贡献;

2.3 延展思考

  • psi的计算涉及(A-E)和ln(A/E),本质上都表达了两个集合之间的正样本率的差异,不同的是,一个采取减法(A-E),另一个则采取了对数减法lnA-lnE。由于对数的存在,天然调整了数据的分布,那么在某种场景下(如上节中提到的psi改良版),是否可以将(A-E)替代lnA-lnE,调整为psi=(A−E)2psi=(A-E)^2psi=(A−E)2呢?这里欢迎各位学者沟通交流,笔者就不做发表了。

三、总结

  1. WOE:对每一特征下的每种取值,统计该取值下的正负样本数量与该特征下的正负样本数量之间的关系
  2. IV: 在WOE计算的基础上,加入了每种取值(分箱)的响应比例, 补充了每种取值在该特征下全样本的相对贡献。
  3. PSI:通过统计该特征下所有取值在"不同数据集上的正样本率之差与之商",衡量该特征在不同数据集下的稳定性;
  4. PSI改良版:通过标准化成单率,解决了不同数据集天然存在相对关系不一致的问题;通过对index加权,解决了同一特征下不同取值的相对关系。

四、代码附录

待补充

特征工程 | 信息价值IV与群体稳定性PSI相关推荐

  1. R语言基于信息价值IV(Information Value)和证据权重WOE(Weights of Evidence)进行特征筛选(feature selection)

    R语言基于信息价值IV(Information Value)和证据权重WOE(Weights of Evidence)进行特征筛选(feature selection) 对一个学习任务来说,给定属性集 ...

  2. 证据权重 (WOE) 与信息价值 (IV)

    在本文中,我们将介绍证据权重和信息价值的概念,以及如何在预测建模过程中使用它们,以及如何使用 SAS.R 和 Python 计算它们的详细信息. 逻辑回归模型是解决二分类问题最常用的统计技术之一.这是 ...

  3. 特征工程中的IV和WOE详解

    1.IV的用途 IV的全称是Information Value,中文意思是信息价值,或者信息量. 我们在用逻辑回归.决策树等模型方法构建分类模型时,经常需要对自变量进行筛选.比如我们有200个候选自变 ...

  4. woe分析_特征工程中的IV和WOE详解

    1.IV的用途 IV的全称是Information Value,中文意思是信息价值,或者信息量. 我们在用逻辑回归.决策树等模型方法构建分类模型时,经常需要对自变量进行筛选.比如我们有200个候选自变 ...

  5. IV (information value)信息价值

    IV 全拼 information value, 即信息价值,是衡量特征对于模型预测能力的指标,常用于入模训练前的特征筛选的参考依据. IV 可由 WOE 计算得到: 整个特征的 IV 值则为每段 I ...

  6. ML之FE之FS:特征工程/数据预处理—特征选择之利用过滤式filter、包装式wrapper、嵌入式Embedded方法(RF/SF)进行特征选择(mushroom蘑菇数据集二分类预测)最全案例应用

    ML之FE之FS:特征工程/数据预处理-特征选择之利用过滤式filter.包装式wrapper.嵌入式Embedded方法(RF/SF)进行特征选择(mushroom蘑菇数据集二分类预测)案例应用 利 ...

  7. 2.2w字长文详解推荐系统之数据与特征工程,码起来慢慢看

    作者丨gongyouliu 编辑丨lily 来源 | 大数据与人工智能(ID:ai-big-data) [导读]推荐系统是机器学习的一个子领域,并且是一个偏工程化.在工业界有极大商业价值的方向.大量应 ...

  8. 「推荐系统中的特征工程」1. 特征工程基础知识介绍

    作者 | gongyouliu 编辑 | auroral-L 全文共6858字,预计阅读35分钟. 本章目录 一.特征的基本概念 二.特征工程介绍 三.特征工程的基本思路和方法 1. 根据不同数据类型 ...

  9. 「构建企业级推荐系统系列」推荐系统之数据与特征工程

    作者 | gongyouliu 编辑 | auroral-L 推荐系统是机器学习的一个子领域,并且是一个偏工程化.在工业界有极大商业价值的方向.大量应用于提供toC类产品的互联网企业服务中,通过推荐系 ...

最新文章

  1. C#常量——const和readonly
  2. Linux 系统 rpm安装ipvsadm.src.rpm
  3. asp.net 2.0 主题中多CSS文件引用
  4. 第4件事 产品经理必须“入戏”, 与用户交朋友
  5. C# 中 System.Range 结构体
  6. python 基础学习--运算符集合
  7. SATA硬盘接口是什么
  8. qt opengl 2d绘图效率_Qt趣味开发之打造一个3D名字渲染小工具
  9. java多线程-线程安全
  10. (第十一周)俄罗斯方块测试报告
  11. python学习笔记 Counter()
  12. HTML,多行文本输入框textarea
  13. 小项目之数据库设计经验分享
  14. EDA -- 灯开关设计
  15. html怎样使得链接在新窗口中打开
  16. javascript百炼成仙 第一章 掌握JavaScript基础 1.12 JavaScript运算符
  17. OpenCV 学习笔记(5) 使用opencv打开笔记本摄像头
  18. 【04】SAP ABAP性能优化 - 如何选用内表类型(STANDARD, SORTED, HASHED)?
  19. 吉时利2657A高功率数字源表-多功能高准度源表
  20. Cadence PSpice 仿真11:电感型低通滤波器最坏情况分析仿真实战图文教程

热门文章

  1. 关于我如何阅读源码这件事...
  2. jasper java_java – 结合两个Jasper报告
  3. 孙陶然:企业的方方面面皆可创新皆需要创新
  4. Docker全环境操作手册(更新中)
  5. Material Design设计之【色彩】实践
  6. 【线性代数04】投影矩阵P和标准正交矩阵Q
  7. 上市公司绿色专利申请数据(绿色创新数据1)(1990-2021)
  8. 如何将flash源文件在flash MX里整体缩放或移动!
  9. react利用react-activation实现子路由缓存
  10. LDA主题模型的原理及使用教程