内容简介:作者:余子娟,CDA L3 数据科学家学员 & CDA L2持证人,专注于金额科技领域,为银行赋能,助力银行信用卡中心全生命周期经营问题。身处互联网金融时代,信用无处不在。为对客户进行一个优质与否的评判,使用信用评分,对客户实行打分制成为当前风控领域的难点。而基于机器学习的信用评分卡则是其中关键的环节。
作者:余子娟,CDA L3 数据科学家学员 & CDA L2持证人,专注于金额科技领域,为银行赋能,助力银行信用卡中心全生命周期经营问题。
身处互联网金融时代,信用无处不在。为对客户进行一个优质与否的评判,使用信用评分,对客户实行打分制成为当前风控领域的难点。而基于机器学习的信用评分卡则是其中关键的环节。
信用评分卡分为A卡(Application scorecard)、B卡(Behavior scorecard)和C卡(Collection scorecard)。A卡是申请评分卡,用于贷前审批阶段对借款申请人的量化评估;B卡为行为评分卡,用于贷后管理,通过借款人的还款及交易行为,结合其他维度的数据预测用户是否会逾期;C卡即催收评分卡,用于催收管理,在借款人当前还款状态为逾期的情况下,预测未来该笔贷款变为坏账的概率。
本文就带大家揭秘信用卡风控评分体系之行为评分卡是如何建立的?
客户信息涉及很多因素,因此敏感信息已在之前脱敏。
目标
通过某银行客户的个人基本资料、过去的信用数据及交易资料,依循评分卡建模的步骤,分析归纳出好客户和坏客户的特征,并建立一个客户是否会持续逾期的评分卡预测模型。
步骤
- 对客户交易数据结合还款情况进行数据处理;
- 使用机器学习构建B类评分卡,并对模型进行评价;
- 再由新样本集对评分卡进行测试,并输出验证结果。
数据
我使用了Kaggle的多个数据集,Kaggle数据集链接:
https://www.kaggle.com/yuzijuan/behavior-scorecard
其中m0_200411.txt为训练集,m0_200412.txt为测试集,TXN_DATA.TXT为交易数据集,MccCode.csv为交易码。
代码
我将本文涉及到的代码全部放在github项目集中。
https://github.com/ICBC-123/scorecard
环境和工具:
Jupyter notebook 、Pandas、Numpy、woebin、var_filter、perf、scorecard、splitdf(后5个为自有评分卡程序)
数据处理
1.训练集处理
首先对数据集中不同类别变量进行数据探索,查看了数据的分布情况。
训练集中PAY_COND(缴费状态码)是可加工的变量,从24位缴费状态中可以获得:
- 每三个月的逾期次数,形成一个6位数的变量,例如012121;
- 获取最大逾期月份,最小为0,最大为9;
- 获得客户的使用月份数和实动月份数
代码实现如下:
账单金额、缴费金额及归属额度是可加工的变量:
- 近6个月各月的额度使用率
- 近6个月各月的还贷比,由于还贷比分布不均,将头尾取[-2,2]作为截断。
2.交易数据集处理
交易数据集共计1886.8万笔,有8个交易属性,可加工较多变量:
- 月均消费次数
- 月均消费金额
- 月均入账次数
- 月均入账金额
- 笔均消费金额
- 交易月份数
……
交易数据集中有MccCode,可以和客户目标属性结合,得到客户高中低风险交易占比。
- 高风险交易占比
- 中风险交易占比
- 低风险交易占比
风险程度来源:先将训练集与交易数据按照ID匹配,求每个客户不同交易类别的交易数量和交易占比;再求得坏客户的交易数占总交易的占比为风险切分点,高于该占比15%的交易类别为高风险类别,低于该占比15%的为低风险类别;最后将各个风险类别对应的风险程度代入交易数据,求得每个客户高中低风险交易占比。
最终形成了基本特征、交易特征、信用卡特征及其衍生变量共计53个指标。
建立评分卡
依据根据CRISM-DM数据挖掘理论,设计模型建立步骤,通过数据检验、数据初筛、分箱及计算WOE、IV筛选,最终建模及评分卡。
数据检验
对已处理好的数据集进行数据检验,包括缺失程度、单变量检验、超多分类检验、异常值、空值填充及正负样本平衡检验。本案例中正负样本比为1:3,由于是金融领域逾期类问题,现实中并不认为这个比例属于不平衡样本,一般样本比例小于1:5,需要进行不平衡类问题处理。常用欠采样、过采样或混合采样来填充样本浓度,预测结果不可直接应用,排序之后可用顺序结果应用于实际。
分箱及计算WOE
分箱其实是当前信用卡风险领域较为困难的操作,如何合理分箱是数据处理之外较难的话题。本案例的分类变量是按照将多个类别合并为一类分箱再计算WOE的,连续数据是有监督分箱,按照CART分类树最优分箱计算各变量的WOE。随机选取WOE值查看如下:
可以看到逾期最大月份的IV值较高,坏样本在不同分类上的区隔较大;归属额度的WOE呈现明显的单调,表明这个变量对结果的贡献较大,变量越重要。
而从这四个变量可知,坏样本在不同分类上的区隔不大,WOE值在水平线左右小幅度浮动,表明这个变量对结果的贡献不大,变量不算重要。
分箱代码如下:
建立评分卡
计算出IV值后,由于该模型变量较多,可以选择筛选掉IV小于0.02的变量,剩余37个变量输入模型。并将数据字典保存成文件,用于后续预测调用使用。
按照7:3生成训练集和测试集,计算出各个变量的WOE后用WOE值替换原始数据,并计算各个变量之间的相关性。
此处分别建立了逻辑回归、决策树、梯度提升树来评判模型效果。
可以看出三种模型效果均较好,就测试集的KS值而言,逻辑回归和梯度提升树较好,由于奥卡姆剃刀原理,当模型效果差别不大时,我们有理由选择复杂度较低,业务可解释性更强的模型即逻辑回归作为最终的输出模型,后续我们也会用验证集进行验证。将得到的模型保存,用于后续模型调用。
建立逻辑回归模型后,对模型稳定性进行了测试,得到PSI远小于0.1,模型稳定性很好。
最终生成的评分卡部分截图如下:
效果评估及预测
然后将原测试集(m0_200412.txt)作为验证集,进行预测的流程图如下:
其中数据加工和数据验证与之前流程一致,重复操作即可。操作好后加载模型和验证集,调用已保存好的数据字典文件,将原数据转化为WOE值,若变量出现新值,用0替换原数据。
我此处仍然通过逻辑回归、决策树和梯度提升树三种模型来验证数据,效果如下图:
可以看到决策树的效果已经坍塌,而梯度提升树的效果不如逻辑回归。需要说明的是,根据业务逻辑,我们更关注的是真正逾期的客户有多少被我们预测出来了即召回率(Recall),本案例中召回率最高的仍是逻辑回归,因此得到:逻辑回归从业务理解难度、稳定性、训练集、测试集、验证集等多方面表现较优,最终选择逻辑回归为最终预测模型。
最终我们得到逻辑回归预测下的各个ID的预测结果。
结语
在金融领域,其实机器学习发展速度不快,当外界已经开始用高阶模型时,我们却还苦苦地应用逻辑回归来解决问题,有时候会担心自己所学是不是已经跟不上时代了。其实无需担忧,金融科技领域,机器学习的发展之路还较远,路漫漫其修远兮,吾将上下而求索。
如果大家有疑问,可以自己下载代码和数据集自行尝试。本身的分享不仅仅是为了分享,也是自我提升的方式之一,如有问题,还请包涵。
相关拓展:
CDA LEVEL 3 数据科学家精英培训是符合「CDA 数据分析师人才行业标准」最高等级准则的一套能够 将数据分析师(Data Analyst)培养为数据科学家(Data Scientist),具备专业性、科学性、高端 性、先进性的领袖级人才培养方案。该课程主要面向从业多年的、有技术基础的大数据及数据分析专 业人士、数据工程师等,为他们提供一个成为数据领袖的跳板。 课程内容是在 CDA LEVEL 1 和 LEVEL 2 大纲的基础之上,进一步涉及更先进的技术、更系统的架构、 更高效的管理,包含计算机科学技术(高性能),大数据架构设计,机器学习,深度学习,数据治理, 项目管理等内容,让数据科学是技术的同时,也能成为艺术。
更多专业内容可移步: https://www.cda.cn/?seo-segme...
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 51 信用卡 Android 架构演进
- 51信用卡 Android 架构演进实践
- 51 信用卡的个性化推荐体系
- 51信用卡的微服务集成测试自动化探索
- 51 信用卡金融风控场景下实时计算引擎的设计与实践
- 信用卡欺诈行为逻辑回归数据分析-大数据ML样本集案例实战
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Web Application Hacker's Handbook
Dafydd Stuttard、Marcus Pinto / Wiley / 2011-9-27 / USD 50.00
The highly successful security book returns with a new edition, completely updated Web applications are the front door to most organizations, exposing them to attacks that may disclose personal infor......一起来看看 《The Web Application Hacker's Handbook》 这本书的介绍吧!