初探金融风控中的信用评分卡搭建全流程 | 社区征文

社区征文数据治理机器学习

前言

从定义上讲,金融科技或者智能金融这个词是指使用技术提供财务解决方案。金融科技是基于大数据,云计算和人工智能等创新技术,对金融领域的业务模式、应用和产品产生了深刻甚至颠覆性的影响。这个词看似很新颖,但是孕育其产生的金融创新历史已经十分悠久。从金融科技初代技术的模拟到数字,到亚非洲新兴市场的fintech,已经走过了一百多年。金融科技一直重复着一个循环:从技术发展引领金融升级到新一轮技术革新,在这个循环中,风险占据很大篇幅,能够有效控制风险,直接影响着金融市场长期健康与稳定。所幸的是,随着科技的发展,新兴科技不断强化金融科技的应用能力。特别是近几年人工智能和大数据技术的快速发展,能够有效地提高了客户的体验和提升金融系统的风控能力。 那就是智能风控,智能风控可以借助大数据和人工智能的优势,为信用评估提供强大的支持:关联知识图谱可以利用大数据+人工智能技术建立的信用评估模型,刻画精准的用户画像,对用户进行综合评定,提高风险管控的能力。在个人信贷中,信用风险评估的关键是,通过分析借款人的信用信息,评估借款人的偿还能力和意愿量化违约风险。因此,个人借贷平台的信用风险管理依赖于其收集和分析借款人信用信息的能力。一般借款人的信息来自线下调查和网络信息两个渠道,线下调查在地理维度上是有限的,并且会增加贷款人的搜索成本。利用信息技术补充甚至替代线下调查已成为个人借贷业务建设的一种趋势。

信用评分卡模式是个人信贷风险管理中的重要手段,是一种结合专家经验的数据驱动方式。以平台积累的大量历史数据与第三方数据为基础,根据领域专家经验得到可以表征信用状态的特征、信息与规律,充分利用机器学习算法挖掘借款人的潜在风险,得到信用评级模型,对借款人进行全周期的风险评估。

评分卡模型包括申请评分卡、行为评分卡、催收评分卡。其中,申请评分卡是最重要的评分卡,因为平台风险管理的主要风险均来自于申请阶段。除此之外还有反欺诈模型、营销评分卡和客户流失评分卡等。它们在风控系统中的先后顺序是:营销评分卡》申请评分卡》行为评分卡》催收评分卡。这几种评分卡算是很普及了,解决的痛点和应用范围这里不再赘述。感兴趣的同学可以自行了解,本文主要解决开发的流程介绍。                                                                                                    

评分卡模型的开发过程是一个完整的数据挖掘过程,所以在传统的数据挖掘过程中需要做的工作,在评分卡模型的构建过程中都会有所涉及。而不同的评分卡模型虽然解决的问题不同,但是开发过程与开发思路是类似的,比如都要经过传统的数据挖掘过程:数据清洗、预处理、特征工程和模型优化等步骤。整体的模型开发过程如下:

picture.image

需求分析阶段

评分卡开发前要经历一个完整的需求分析阶段,在此阶段要与不同业务部门进行多次沟通以达成共识。需要明确的方向如下:

  1. 模型开发的种类:开发的是哪种评分卡,如申请评分卡、反欺诈模型、行为评分卡、催收评分卡等。不同的评分卡对变量与特征处理的要求不同,因此在开发阶段要明确开发模型的种类。
  2. 模型开发的目的:本次开发是否为首次开发?该类模型是否正在上线使用?如果已有运营的模型,那么需要明确本次开发的改进方向,并且最好有一个基线模型以保证模型开发的最低标准。
  3. 模型可接入的数据:需要确定本次建模有哪些数据可用、数据的时间范围、数据质量与缺失情况、内部数据与外部数据是否可对应。
  4. 模型的交付时间:确定模型开发的紧迫程度、需要交付使用的最大容忍时间与最小容忍时间,以确保模型的正常交付。
  5. 模型评估指标:明确模型评估指标,确定指标基线,即模型达到什么程度是最小的可接受范围。如果评估指标相互制约,确定可牺牲的指标与必须达到的基线指标,如在KS值固定的前提下,精确率(Precision)与召回率(Recall)是相互制约的指标。此时可以考虑牺牲精确率,提高召回率,以求可以甄别更多的坏样本。
  6. 模型的响应时间:不同的模型应用场景对响应时间的要求不同。不同的响应需要决定了模型的复杂程度,如果是实时性高的应用场景,就需要采用简单的模型来减少等待评估结果的时间。如果对时效性没有特殊要求,则可以完全以指标上限为目标而不必考虑模型复杂程度的限制。
  7. 模型的交付形式:模型的上线形式决定了模型的最终交付形式和外部接口。

模型开发阶段

模型开发阶段是整个评分卡模型开发的核心部分,包括数据收集、数据清洗与预处理、特征工程、模型训练与优化、模型评估等工作。

数据收集

明确了模型开发需求后,即可开始进行数据收集。将可用的内部自有数据或外部数据进行导入、合并、规约。该阶段比较费时,对于自有数据,需要确定数据是否同源、系统是否有过升级跃迁、数据量是否满足建模需求。对于外部数据,需要确定购买的价格、提供数据的时间范围及与内部数据的对应情况。

数据不同源是指不同类型的数据存在于不同的数据库中。由于不同源会造成数据的质量与缺失值有所差异,在做表关联与合并时会出现不一致或部分时间内某些变量缺失值较多的情况。在模型训练时,模型会更倾向于选择缺失值较少的变量进行建模,因为缺失值较多的变量能发挥的作用较小。因此,确认数据是否同源是非常重要的。

系统升级的原因很多,如果是因数据库扩容而进行的升级,那么升级前后的数据没有太大变化;如果是因为业务改变而升级,则会造成某些历史变量被取消或增加很多新的变量而导致升级前后的变量不一致,这时需要以进行升级的时间阶段为依据,分别进行数据规约与合并。 数据规约主要指数据格式的规范化,比如时间变量可能由于未知的原因有不同格式,或者由于系统升级造成时间格式不统一。因此,要规范化格式。 对于外部数据一般考虑成本问题,及其与内部数据的时间或样本的匹配程度。

数据清洗与预处理

利用数据清洗与预处理对合并后的数据进行初步甄选,即删除缺失值比例高的变量及方差较小的变量,并进行描述性统计分析。

缺失值产生的原因是不可追溯的,当缺失值比例较高时,无论用怎样的插补方式都是不合理的,因为插补可能会造成模型的混叠问题。一般在缺失值比例较高时要删除这个变量。例如,当缺失值比例超过80%时,做删除处理,当低于这个比例时,采用缺失值插补的方式进行填补。

注意:在评分卡模型的开发过程中,对于缺失值一般时,不采用插补的方法,而是直接将缺失状态作为一种特征进行建模处理。

方差较小的变量是指随着目标变量的变化几乎不发生改变或波动很小的变量,这种变量一般对目标变量没有预测能力,也可以理解为对预测变量没有区分效果。要设定一个方差阈值,删除小于该阈值的变量。存在一种极端的情况:变量是一个恒定值,如变量取值均为100,这种变量也要删除。

描述性统计分析的主要目的是观察变量的分布情况、数据范围、有无异常值、不同类别下变量的分布情况。在这个过程中,可以从总体上把握各个变量的真实分布情况,为后续的特征工程做准备。

特征工程

特征工程是整个模型构建中最重要的环节,决定了最终模型的预测效果。特征工程是一个先升维(膨胀)后降维(收缩)的过程:升维阶段是为了尽可能找到一切和预测变量有关的信息,以求更好地解释预测变量;降维是在众多高维特征中找到贡献最大的大部分变量,以减小模型训练的开销,同时也给模型一个相对简单的搜索空间,从而得到一个相对较优的解。

特征工程包括变量编码、变量衍生、相关性分析、多重共线性分析、变量选择等一系列工作。在变量衍生过程中需要非常强的行业背景提供经验指导,比如申请评分卡希望找到能够反映借款人还款能力的变量,以及相应的衍生变量和不同的变量如何做组合特征等。

变量编码是指离散变量的数值化处理方式,实际生产中,离散变量往往是以字符串形式出现的,而大部分机器学习模型都只能处理数值变量。因此,需要对离散变量进行变量编码,如哑变量编码、One-hot编码或WOE编码等。

变量衍生即为特征加工的过程,意在从基本的借款人信息中加工出更有业务意义的变量。比如通过乘或除的方式得到一些非线性的特征。需要注意的是,通过变量之间的加或减操作得到的特征是没有意义的,这些特征与原变量是线性相关的,由乘、除或其他的非线性变换得到的特征才有意义。连续变量分箱处理、离散变量的交叉组合也是比较常用的变量衍生方法,在后续的高阶篇中会介绍一些高阶的变量衍生方法。

相关性分析与多重共线性分析类似。相关性分析是指两两变量的相关性,而多重共线性是分析一个变量和多个变量的相关性,其本质都是剔除线性相关的变量,而保留线性无关的变量,以减少模型训练的开销与模型训练的效果。

变量选择是特征工程的最后一步,目的是从众多候选集中再次选拔出对预测变量有更好预测能力的变量。对应的方法一般有基于模型的方法、过滤法、嵌入法等,生产中常用随机森林进行变量重要性排序,选取累计贡献率达到阈值的变量作为最终的输入变量以进行模型训练。

模型的训练与优化

机器学习中有很多模型,从简单的线性回归到复杂的深度神经网络。在训练模型之前需要确定选择哪种模型,模型选择是指机器学习中有很多模型,如从简单的线性回归到复杂的深度神经网络。模型的选择依据要从建模的数据量、模型的可解释性要求、模型的实时性要求等方面综合考虑。

如果数据量太大,那么不建议使用支持向量机模型,因为支持向量机模型需要进行核函数映射,数据量大时映射矩阵巨大,非常耗时,因此建议可以考虑采用一些树模型或神经网络模型。

如果要求模型可解释,即需要做业务解释,则尽量不要选用黑箱模型,如神经网络、集成模型等,而选用Logistic回归模型或决策树模型。

注意:随机森林模型本质上是以决策树为基学习器的组合模型,但是由于采用的基学习器(决策树)较多,所以也很难做出解释。

如果要求模型的实时性高,即在对新样本进行预测时能快速完成预测任务,就不能采用非函数式模型,如KNN模型。非函数式模型在预测新样本时,需要原样本参与计算,这时,模型参数是原始数据的某种表示,使得模型不能固定使用训练好的参数。例如,KNN模型分析预测样本时,需要计算与原样本的距离,虽然可通过结构优化提高速度,但还是比函数式模型的预测速度慢,这种情况下,建议使用相对简单的模型,如Logistic回归模型。

如果不要求模型可解释,而只要求模型的性能最优,那么可以采用集成模型、深度学习模型做迭代优化。设置好指标采用嵌套的交叉验证,就可以完成模型参数优化与模型选择。

关于选择模型的指标,须重点参考需求分析中列出需要提升的指标,如果满足要求,就进入模型复现与交付阶段。

在确定模型后即可以进行模型训练,然后再经过多次迭代优化得到最优模型。

模型评估

模型评估与模型训练紧密相连,在模型训练时往往将数据分为三部分:训练集、验证集和测试集。其中,测试集也叫袋外样本,即在训练集上训练模型,并在验证集上评估模型的表现,最后采用测试集做袋外验证,从而判断训练好的模型在验证集与测试集上的表现是否相差太大,并验证模型的泛化能力。如果模型在训练集和验证集上的表现与在测试集上的表现相差很大,则要对其进一步优化,要验证变量的稳定性和一致性等是否存在差异,并检查模型是否存在过拟合问题等。

最后,要与需求分析阶段的评估指标做比较,确定模型是否满足本次的开发需求,如果不满足,则需要进一步调整,如采用更复杂的模型等。

评分卡创建

若模型满足设计要求,那么需要将模型的概率输出转化为信用分,即将风险数值化,呈现出高风险低分值、低风险高分值的效果。转化后,每个变量都有一个分值,如性别变量,即男、女、未知三种,对应着不同的分值,每个变量的分值总和就是最终的信用分。通过信用分,可以非常清楚地看到每个变量的分值贡献,比如是加分项还是减分项,这样可以给授信、拒绝、额度修改等业务调整以充足的解释依据。

模型开发报告

一般情况下,模型开发完成后需要有必要的项目产出,如交付的模型、模型开发报告等。其中,模型开发报告要详细描述本次模型的开发过程,如数据情况、处理过程和建模过程等,也是项目完成的重要总结。

模型验证

模型复现

模型复现环节的目的在于通过开发者的模型开发报告复现整个模型开发过程,以确定最终模型的效果是否存在偏差,从而消除模型的偶然最优现象。如果模型是多人协同开发的,在开发者各自的PC环境中,其运行的最终结果相差不大,那么模型复现这步可以不做。

现有模型的比较

由于模型开发过程会比较漫长,因此即使在模型开发时收集到的数据是最新的有违约表现的数据,但是在完成模型开发与优化迭代后,可能又会产生新的有违约表现的数据。这时为了保险起见,应再次使用这些最新的有违约表现的数据测试模型,以比对新模型与已经上线的模型的优劣。当然,如果是首次开发,这个过程是可忽略的。

上线部署与模型监控

如果前面的步骤均没有问题的话,就可以进入模型上线阶段。此时,需要根据需求分析阶段约定的模型交付形式来交付模型,并根据具体的要求实现模型上线部署。一般会由专门负责平台部署的团队来完成模型部署,他们会按照实时性要求与预测量的不同,决定使用不同的部署方法。对于常用的PMML部署模式,需要将模型开发过程中的步骤,如特征工程、归一化、训练好的模型等准备好,并将对应的Python程序转化为XML形式,这样预测程序就可以实现跨平台的效果。

PMML

注:PMML类似于模型序列化方法,Python程序转化为XML形式后可以在网页端自由调用,实现跨平台的效果。但是PMML封装后与直接调用scikit-learn包相比,结果的准确性可能会有一点损失,而复杂的模型,如Xgboost,其模型有几吉字节(GB)的规模,则PMML加载会慢一些。因此,PMML方式适合轻量级模型,即训练好的模型不是吉字节级别的规模。

模型的监控

如果模型较大,可以采用比较常规的调用外部接口的方式配置好环境,接收外部预测数据后直接调用Python程序进行预测。这也是一种解耦的方法,对于GB级别的模型也适用,并且可以保证准确性与稳定性。

模型上线运行后须对它进行监督,判断它是否会出现系统性偏差。若存在偏差,一方面要进行模型更新,另一方面要分析产生偏差的原因。需要注意的是,还要考虑该产品是否存在周期效应属性,即是否有授信申请的淡季与旺季。在排除周期性影响后,判断模型是否稳定,是否有明显的客户跃迁行为,从而指导模型的更新机制。

以上这四步这就是评分卡模型开发的一般流程。

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论