提出明确业务目标及业务定义,解决什么问题,目标定义是什么。将问题转换为数学问题,例如解决信贷客户逾期问题,目标定义就是降低逾期率,提升利润率。问题转换就是根据客群进件时候填写的信息和征信等外部数据来预测未来一段时间内的违约概率,拦截逾期概率较高的客群,减少不良率。这里介绍一下评分卡建模过程,具体步骤如下:
步骤1 滚动率矩阵分析,定义坏客户逾期程度(例如逾期21天+)
步骤2 根据坏客户定义来计算vintage曲线(确认表现期长度)
步骤3 样本选取(观察点,观察期,表现期确定,选取建模样本)
步骤4 分群建模(根据样本量和风险差异判断是否需要分群建模)
步骤5 评分卡模型建模流程
步骤6 评分卡转换
步骤7 验证并上线
▍评分卡模型建模流程-数据清洗
1.缺失值的缺失率和单一值率筛选
2.剔除贷前规则集和准入要求命中的样本
3.剔除样本后的数据进行计算iv值,进行初筛变量(iv<0.02)可以基于scorecardpy进行计算
▍评分卡模型建模流程-特征筛选
将样本切分成训练集和测试集(7:3或6:4),有条件的话可以多准备一份近期的验证集样本:
1.将训练集进行分箱并计算iv值,返回分箱明细
2.根据训练集的iv结果剔除iv<0.02的变量
3.根据训练集的分箱明细去切分测试集样本计算iv值和分箱明细
4.统计训练集和测试集在同一分箱切分点下,其woe或bad_rate趋势是否一致且单调性
5.剔除趋势不一致的变量和剔除非单调型和非正V型、非倒V型的变量(有较多变量的话 可以只留下单调且趋势一致的变量)
6.根据同一分箱切分点对训练集和测试集进行woe编码,计算两者的psi值稳定性,剔除psi值>0.01的变量(根据变量数量设置阈值)
7.根据训练集的woe编码后样本计算VIF值,剔除共线性严重的变量(VIF>=5)
8.随机森林算法或者LightGBM树模型计算每一个变量的特征重要度(当变量较多时,留下较为重要的变量)
9.通过交叉验证,随机抽取10份训练集里面70%的样本按照训练集的分箱切分点计算mean_iv值和偏移度
10.计算训练集woe编码后的相关性矩阵,剔除两两变量之前相关性>0.75的其中mean_iv较低的变量
11.按照训练集的分箱切分点,计算训练集和测试集在同一个变量上的iv值表现,如果两者iv值相差很大,导致模型过拟合或不稳定,则进行剔除
12.剔除iv值过大的变量,例如iv>0.5(iv较高的变量适合用来做强规则,同时高iv变量不稳定不适合作为评分建模变量)
13.剔除业务解释性不强或者相反的变量
14.按照训练集剔除变量列表,去同步剔除测试集的变量,统一两个样本集的变量
▍评分卡模型建模流程-建立模型与评估
1.基于逻辑回归模型,建立评分卡模型
2.根据评分卡模型返回变量的系数,剔除系数为负数的变量,重新进行模型训练直到系数不为负数
3.用建立的最终模型去预测训练集和测试集,得到训练集和测试集、验证集预测概率y_pred
4.,根据训练集和测试集、验证集预测概率y_pred和真实y计算模型评价指标KS和AUC、GINI系数(五个点以内,避免过拟合)
5.统计其训练集和测试集分10箱统计坏账率的分布和单调性、一致性
6.模型系数和参数进行转换具体card分箱打分卡模型
7.计算训练集和测试集的评分psi值,评价模型的稳定性(psi<0.01)
▍评分卡模型建模流程-基于Lift设置评分卡拦截阈值和客户分层应用
1.样本按照时间序列进行按月排序统计每个月的坏账率,随机将样本划分成两份(训练集和测试集进行7:3)
2.将训练集基于5折交叉验证,统计出每一个阈值的平均Lift,选取Lift最高且集中度(样本量)满足一定统计意义的阈值。
3.用训练集中得到的阈值去计算测试集的Lift,两者若相差不大,则按照这个阈值去拦截拒绝高风险客户。
4.客户分层基于汇总的样本划分10箱(每一箱的样本量保持一致),统计其每一箱的坏账率,观测其坏账率的单调性,根据业务需求,进行划分四个等级(高风险,中高风险,中风险,低风险)。客户分层可以用于风险定价定额或者线上化差异化分流审核机制。
▍总结
金融信用评分卡建模主要流程就为大家介绍到这里,但实际评分卡建模中仍有很多细节值得探索与思考,这是一件非常有意义的事情。也期待各位在学习时能够保持独立思考能力,脚踏实地的不断优化数据科学知识。