首页 > 其他分享 >风控建模常用指标——WOE/IV/COR/VIF/PSI总结以及实现代码

风控建模常用指标——WOE/IV/COR/VIF/PSI总结以及实现代码

时间:2024-05-30 18:04:14浏览次数:25  
标签:分箱 COR VIF 编码 IV PSI WOE

风控建模常用指标——WOE/IV/COR/VIF/PSI总结以及实现代码

在金融领域,风险控制(风控)是维护金融稳定和安全的重要环节。随着大数据时代的到来,金融机构越来越依赖于数据驱动的风控模型来评估和量化风险。在构建这些模型时,一系列关键指标成为了衡量和解释模型性能的基石。其中,WOE(Weight of Evidence)、IV(Information Value)、COR(相关系数)、VIF(方差膨胀因子)和PSI(人口稳定性指数)等指标因其在模型建立和评估中的独特作用而备受重视。


文章目录


一、建模前:特征重要性

1、WOE值

WOE最早出现在银行早起的SAAS系统中的,使用逻辑回归做评分卡的时候通过WOE编码可以实现直接通过特征进行WOE编码的计算得到用户的打分结果,这个是WOE编码最早被提出使用的方向。

WOE计算流程:

为什么使用WOE编码?

  • 1、LR没法处理类别特征,独热编码展开维度太高,借助WOE编码可以处理(WOE编码本质是一种类别特征编码和target Encoder是一样的)
  • 2、平时所说的评分卡,比如XGBoost、LGBM做的评分卡,做的预测结果会输出分数,但早期银行用逻辑回归做的评分卡, 使用WOE编码可以很方便的做单特征的分析,比如年龄50对应的WOE编码是多少,转化也方便。
  • 3、WOE编码需要分箱之后才能做,分箱可以有效提高特征的稳定性,而银行又对模型的稳定性非常看重,模型的稳定性又是直接对应特征稳定性的。特征是否稳定基本决定了模型是否稳定,因此会使用一些分箱的方法,早期根据业务经验人工分箱

WOE值计算实现代码

  • WOE,Weight of Evidence,对于离散型变量的某个值或者是连续变量的某个分段下的好坏客户的比例的对数。
  • 计算WOE编码首先需要对这个变量进行分组处理,一般采用均匀分箱,离散型变量组数一般是类别数量,连续型变量一般划分为6组,对于离散型变量,如果分箱太多,则进行分箱合并。
  • 分箱后的WOE需要同时在测试集和训练集满足单调性,若不满足,则需要重新进行分箱计算。
# 特征分组函数
def woe_cut(data, i):
    data_cut = pd.DataFrame()
    for item in data.columns:
        series = pd.DataFrame(pd.qcut(data[item], i, labels=False))
        data_cut = pd.concat([data_cut, series], axis=1)
    return data_cut
    

标签:分箱,COR,VIF,编码,IV,PSI,WOE
From: https://blog.csdn.net/LUyan10086/article/details/139327989

相关文章

  • datax 从 hive 同步数据配置
    DataXHiveReader1快速介绍Hivereader插件:从Hive表读取数据2实现原理实现方式是:根据配置的QuerySql,通过将查询结果保存到一张新的临时hive表中这种方式;然后获取临时表的hdfs文件地址,然后读取文件到缓冲区,最后删除临时的表。3功能说明Hivereader插件:从Hive表读取数据......
  • 如何隐藏 Firefox 窗口(Selenium WebDriver)?
    在Python中使用SeleniumWebDriver隐藏Firefox窗口通常涉及到配置FirefoxOptions来禁用其图形界面的显示。以下是一个详细的步骤和代码示例:1.首先,确保你已经安装了selenium库,以及geckodriver(适用于Firefox浏览器)。如果还没有安装,可以通过pip进行安装:```bashpipinstallsel......
  • 在三维前端项目开发中THREE.PerspectiveCamera创建透视相机对象
    在Three.js中,可以使用THREE.PerspectiveCamera函数创建一个透视相机对象。大家好!艾斯视觉作为在IT行业中负责ui设计和前端开发环节的服务商很高兴能在这里与大家共同探讨学习:THREE.PerspectiveCamera的参数如下:fov:垂直视野角度,以角度为单位。通常,这个值在45到90之间。a......
  • Hive中常用query--关联/聚合/去重/排序举例
    在Hive中,可以使用各种查询来执行关联(JOINs)、聚合(Aggregations)、去重(Distinct)和排序(Sorting)操作。以下是一些常见的查询示例:关联(JOIN):在Hive中执行关联操作通常是为了将两个或多个表中相关的行连接起来。SELECTe.name,e.salary,d.department_nameFROMemployeeseJOIN......
  • error in ./node_modules/@intlify/core-base/dist/core-base.cjs
    ERRORFailedtocompilewith1error......
  • Android基础-Activity的介绍
    在Android系统中,Activity是一个重要的组件,它承载了用户与应用之间的交互界面。以下是关于Activity的功能、作用以及生命周期的详细介绍。Activity的功能和作用提供用户界面:Activity是Android应用程序中用于表示一个屏幕或用户界面的组件。它负责展示应用程序的用户界面,如......
  • 在开发系统中将 .net core 6.0 Web API 部署到 IIS 无法正常工作
    发布到本地文件夹并配置到IIS进行测试的.netcore6.0Webapi无法正常工作。Thissitecan'tbereachedlocalhostrefusedtoconnect.请尝试:检查连接检查代理和防火墙ERR_CONNECTION_REFUSED已执行步骤......
  • Flutter 中的 SliverGrid 小部件:全面指南
    Flutter中的SliverGrid小部件:全面指南Flutter是一个由Google开发的UI框架,它允许开发者使用Dart语言来构建高性能、跨平台的移动、Web和桌面应用。在Flutter的丰富组件库中,SliverGrid是一个用于创建网格布局的组件,它通常与CustomScrollView结合使用,以提供滚......
  • GD32 使用ST-Link进行调试出现Error:Flash Download Failed-“Cortex-M3“ 解决方案
    项目场景:原来一直使用STM32,最近有个项目发项工程师打板采用的是GD32,外部引脚是一一对应的,STM32的各种下载工具和方法也是基本相同的。问题描述`前期就是库函数和芯片包要改成GD32的。前期工作都完成了,剩下最后一公里,就是下载程序。在MDK5中,采用STLINK,选好芯片型号,准备下载,但出现了Error:FlashDow......
  • [SQL DRIVEN] GetExistingLocalJoinPath
    ThefollowingsqlstatementswilltriggercallingfunctionGetExistingLocalJoinPath.setupCREATEEXTENSIONpostgres_fdw;CREATESERVERforeign_serverFOREIGNDATAWRAPPERpostgres_fdwOPTIONS(host'127.0.0.1',dbname'postgres',por......