风控建模常用指标——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