APP下载

基于可解释集成学习的信贷违约预测①

2022-01-05蔡青松吴金迪白宸宇

计算机系统应用 2021年12期
关键词:解释性信贷样本

蔡青松, 吴金迪, 白宸宇

(北京工商大学 计算机学院, 北京 100048)

近年来, 关于信用贷款的违约预测已成为高校科研人员和金融机构重点研究的内容[1]. 信用贷款是根据借款人的综合信用发放的一笔借款资金, 其不需要固定资产抵押, 但是对借款人征信有着严格要求. 网贷公司、互联网公司等机构的信贷业务, 也伴随着互联网的高速发展而飞速前进, 与此同时, 这些贷款机构面临着部分客户无法按时还款的问题, 违约现象愈发显著[2].对于贷款申请是否通过, 以前是凭借人工处理与机器审核相结合的方式来做出决策, 在大数据时代, 这种方式已经不再适合市场发展的需要. 要解决此类问题, 必须构建一个可靠的预测模型[3]. 信贷违约预测模型是金融大数据风控领域必不可少的一部分, 能够帮助审批人员准确高效地识别客户是否具有偿还贷款的能力,在一定程度上能够减轻贷款审批人员的工作压力, 同时提高审批通过的准确率. 因此, 对信贷违约预测模型进行研究具有很大的现实意义[4].

近年来, 国内外关于信贷违约预测的研究都取得了一定的成果. 章宁等人针对借贷过程中的信息不对称问题, 为更有效地整合不同的数据源和贷款违约预测模型, 提出一种基于AUC和Q统计值的学习方法[5].Deng等人使用LendingClub平台提供的数据进行研究, 选出影响最大的前20个因素, 使用Logistic回归模型, 确定了影响违约风险的主要因素, 并通过可视化一些变量之间的关系, 得到定性分析结果[6]. Kim等人提出了一种半监督学习方法, 通过考虑社会借贷数据的特点, 利用社会贷款的大量未标记数据来强化边界, 利用标签传播、转换支持向量机(TSVM)与Dempster-Shafer理论相结合的方法, 实现对社交借贷的准确预测[7]. 魏力等人针对P2P信贷项目如何减少借贷过程中的风险冲击, 建立由规则推导而成的标签模型, 从多角度描述用户, 构建客户画像, 提升分类任务的效果[8].

上述信贷违约预测模型主要是以简单模型为主.采用这种模型虽然保证了一定的可解释性, 但也出现了预测精确率低的情况. 因此, 为了避免使用简单模型存在的问题, 一些研究人员将目光投向了使用多模型的方式来构建信贷违约预测模型. Tong等人针对英国的贷款违约问题, 利用来自英国银行的大量房屋抵押贷款违约数据集, 针对拖欠贷款产生的总损失金额建立了混合离散连续模型, 从而提高预测方面的性能[9].马晓君等人运用CatBoost算法对于P2P网络借贷中的违约预测情况展开了研究, 通过对违约影响因素进行综合分析, 使得模型出错所导致的损失成本进行有效控制[10]. Ma等人又使用了多角度和多维的数据清洗方法, 将XGBoost算法应用于真实数据, 其使用基于分布式的模式结合弱学习器, 提高了模型的训练效率[11].

受上述研究启发, 本文基于Stacking[12]策略, 构建了基于LightGBM-DeepFM-Catboost的信贷违约预测模型[13-15]. 此外, 本文新颖性地引入了基于局部可解释的、与模型无关的LIME方法[16], 能够对于复杂模型的预测结果做出值得人们信赖的解释, 在提升违约预测精确度的同时, 进一步提升本文所提出模型的可解释性.

1 相关技术研究

1.1 LightGBM算法

LightGBM是对GBDT算法进行改进和提升后的优化版本, 属于集成模型, 主要采用了基于leaf-wise的决策树生长策略和基于直方图的决策树算法. 基于leafwise的决策树生长策略每次从当前所有叶子中找到分裂增益最大的一个叶子, 然后分裂, 如此循环, 因此同level-wise相比, 在分裂次数相同的情况下, leaf-wise可以降低更多误差, 得到更好的精度, 在保证高效率的同时防止过拟合. 同时基于直方图的决策树算法不需要额外存储预排序的结果, 而且可以只保存特征离散化后的值, 明显降低了内存消耗, 从而对于内存的利用率会更低, 在二叉树中可以通过利用叶节点的父结点和相邻结点的直方图的相减来获得该叶节点的直方图,所以只要为一个叶节点建立直方图, 就可以通过直方图的相减来获得相邻结点的直方图, 因此花费的代价较小, 有助于提高融合模型的效率.

1.2 DeepFM算法

DeepFM是一个集成了DeepNN和FM的神经网络框架, 由DeepNN和FM通过并行的方式组合而成.DeepNN是用来做特征之间的高阶组合, 所有的特征都会被转化成Embedding向量作为Deep部分的输入,在DNN层利用深度学习数据在网络间的传播性得到高阶特征. FM是用于特征之间的低阶组合, 在Dense Embedding Layer的基础上, 做了二项交叉特征, 能够自动识别特征组合, 来减少手工提取特征的工作量, 且计算过程中不需要用户干预. 这两个部分分配同样的特征输入, 在经过模型后, 将他们的输出汇总成为最终的预测结果. 既考虑低阶又考虑高阶特征的方式在违约预测模型领域具有较好的覆盖性.

1.3 CatBoost算法

CatBoost能够很好地处理类别型特征, 对于每个样本, 都单独构建一个利用该样本之前的样本点的梯度估计得到的模型. 针对这些模型, 估计该样本的梯度,然后利用新模型重新对样本打分. 与原有的梯度提升方法不同, 它具有有序提升的特点, 通过在每个训练步骤中, 使用独立置换的历史样本进行无偏差的提升, 相比其他提升算法能够更好地响应过拟合问题. CatBoost还可以提供类似于基于决策树的特征重要性, 是在训练过程中处理类别型特征, 而无需进行包括调整超参数在内的额外预处理. 因为其简单性和高性能的特性,所以该算法已被越来越多的应用在各领域中.

1.4 Stacking策略

集成方法可分为两类, 分别是同质集成和异质集成, 同质集成是使用同一种机器学习算法来构建集成模型, 异质集成是使用不同的机器学习算法来构建集成模型. 传统上构建集成模型时, 每个模型都具有相同的权重, 有时可能认为某些模型更好或更准确, 希望手动为其分配更高的权重. 有一种方法是通过使用另一层学习算法来自动地估计每个模型的权重, 这种方法称为Stacking策略, 具体流程如图1所示.

图1 Stacking流程图

由于每个基模型都做出了重大贡献, 而且每个模型各有优劣, 使用了Stacking策略后, 通过集成的方式使得其他模型的优势弥补了某个模型的弱点和不足,提高了整个预测模型的准确度. 将Stacking策略应用于现实世界中的大数据问题, 也可以产生更高的预测准确性. 其主要思想是将原始数据集划分为训练集和测试集, 采用交叉验证的方式对第一层的各种模型进行训练, 使训练后的模型在验证集和测试集上进行预测, 将验证集上的预测结果叠加作为新的特征, 用作第二层学习模型的输入, 将测试集上的预测结果的平均作为第二层模型的测试集. 该第二层算法经过训练, 从而做出最终预测结果. 算法流程如算法1所示.

算法1. Stacking算法D(x1,y1),···,(xn,yn) x′输入: 训练集 ; 测试数据y′输出: 预测结果i=1→m 1. for do hi←ci(D)2. 3. end for D′←∅4. j=1→n 5. for do i=1→m 6. for do zji←hi(xj)7. 8. end for D′←D′∪((zj1,···,zjm),yj)9. 10. end for h′←c′(D′)11. y′←h′(h1(x′),···,hm(x′))12.

1.5 模型解释机制

针对模型的可解释性分为全局解释和局部解释,预测结果可解释性对于本文研究问题的意义有以下4点: 首先针对于信贷领域. 可解释性能够将不可信任的预测结果转换为值得信任的, 让用户对于预测结果产生充分信任. 其次提供了观察信贷违约预测模型的新视角, 以便应对来自银保监会和人行的监管压力, 同时保证了信贷领域的公平性. 再次可以帮助金融机构决定是否部署融合模型和进一步改善模型. 最后可以消除风控模型在金融机构部署时的潜在威胁, 建立起机构、用户与信贷违约预测模型之间的信任关系.

全局可解释性是指能够基于全部数据集上的响应变量和输入特征之间的互相作用来解释模型的决策.对于本文所研究的信贷违约预测模型, 全局可解释性可以在模块级别上帮助我们理解模型, 比如说针对不同特征, 目标变量的分布是什么, 这对于本文的研究具有一定的意义, 但是对于参数级层面的解释, 在信贷违约预测模型具有大量参数的情况下, 人们很难想象特征之间是如何通过相互作用, 才能获得这样的预测结果.

LIME是一种利用简单模型来解释任何复杂模型的局部解释技术, 与被解释的模型无关, 不需要进行模型适配, 也不会深入模型内部, 它用人们理解的方式来解释模型. LIME解释技术对于数据集中特征相关与否并无明确要求, 只是复杂模型的预测精度会随着不相关特征的筛除而不断上升, 其主要是通过扰动局部的人类容易理解的特征来改变输入, 通过对复杂模型的局部近似, 观察预测结果的变化来理解模型内部的行为, 生成人们可以信赖的解释. 对于模型预测结果进行事后解释, 我们能拥有更多的信息来决定是否信任信贷违约预测模型以及模型的预测结果.

我们将g作为预测模型f的解释:g∈G, 定义一个目标函数ξ, 同时, 为了测量g在局部如何逼近f, 我们定义了一个损失函数L, 在保持模型复杂度Ω (g)足够低的同时, 我们通过最小化损失函数L得到目标函数ξ 的最优解.

目标函数定义为:

损失函数定义为:

其中,z是原始数据集中一个被扰动的样本点,z′是通过对该样本随机扰动产生的新样本点的集合, 通过LIME的可视化机制, 给出模型预测结果的局部解释.

2 基于Stacking与LIME信贷违约预测模型

信贷违约预测模型通过在脱敏数据集上完成训练,来预测客户后期产生违约的概率, 目的是帮助机构人员对客户的资质完成审核, 预测客户的还款能力, 提前发现贷款的潜在损失, 避免产生不必要的纠纷, 降低借贷风险. 本文采用Stacking策略, 使用单个模型来学习如何最佳地组合互补模型, 并将第一层模型的输出作为标签附加到我们的样本中, 还需要使用交叉验证来比较模型的泛化性能.

由于不同的算法模型具有不同的性能特征, 所以在综合比较了常用的模型后, 我们选择了LightGBM、DeepFM、CatBoost作为第一层模型, 将第一层基模型的输出作为第二层模型的输入. 由于CatBoost模型在Stacking中的应用对于模型融合更为有效, 所以我们使用CatBoost模型作为第二层的次模型. CatBoost模型学习第一层模型中子模型的性能, 并根据子模型的误差给子模型赋予不同的权重后进行训练, 以进行最终预测. 因此, 如果单个模型表现不佳, 不一定会对结果产生不利影响. 两层模型融合后的新模型优于第一层的单个子模型, 这也表明多模型融合比单一模型具有更好的预测准确度.

基于Stacking与LIME信贷违约预测模型, 其预测的流程如图2所示.

图2 信贷违约预测模型

基于Stacking策略的融合模型, 通过引入LIME方法, 构造了具备可解释性的异质集成模型. LIME为了搞清楚哪一部分输入对预测结果产生贡献, 在要解释的样本周围做微小的扰动, 然后我们根据这些扰动的数据点距离原始数据的距离分配权重, 基于学习得到一个可解释的稀疏线性模型, 对于融合模型最终的预测结果, 事后解释机制LIME通过可视化的方式在局部进行了解释.

3 仿真实验

3.1 实验环境

在实验过程中, 我们使用开源语言Python 3编写代码, 利用Python的NumPy和Pandas等进行数据预处理和特征工程. 操作系统为Windows 10, 机器配置为2.40 GHz Intel i5-9300H GTX1650.

3.2 数据描述

本文使用的数据是来自Kaggle的公开数据集, 包含了贷款客户脱敏后的信用交易数据, 并带有一个标签, 指示客户是否会违约. 3个数据集中分别存储了不同用户的基本信息数据, 每一行代表一个样本, 来自3个数据集的主要特征的含义均展示在如表1所示的主要特征含义表中.

表1 主要特征含义表

每笔借贷样本属性主要包括年龄、借款利率、借款用途、借款目的、借贷持续时间、信用账户额度、借款时长、活期存款、借款人现在拖欠账目的逾期情况、过去12个月的征信查询次数、过去6个月的贷款违约次数、房屋状况、教育程度、性别、工作等信息.

3.3 实验流程

(1) 数据预处理

由于原始数据集具有缺失值、类别不平衡和高维特征等问题. 在预测模型中, 类别不平衡会导致预测不准确, 而高维稀疏数据也会产生维数问题, 为了解决上述问题, 我们进行了以下工作. 首先关注类别不平衡问题, 经过分析表明, 由于模型中正负样本比例过大, 从而导致过拟合, 以至于训练后的模型预测效果差. 导致训练后的模型精度虽然高, 但是却没有价值, 通过下采样对这一问题进行了控制.

对于应用了级联原理模型的正负样本阈值的确定,我们将数据集分出一部分作为验证集, 对于级联中选取的每个基模型进行训练后去不断的动态调整阈值,通过在实验中调整参数, 找到在验证集上效果最好的阈值. 部分样本的缺失值过多, 会影响模型训练效果.但是缺失数据的比例占总体样本的比例较少, 而且缺失数据是随机出现的, 所以我们从训练数据中直接删除了这部分缺失值过高的数据, 这样删除缺失数据, 对后续的分析结果影响不大. 数据集中还有一些类别特征样本数过低的以及为0的特征, 由于它们对最终的预测结果影响不大, 因此, 我们将其进行直接删除.

(2) 特征工程

原始数据集中有近百维的数值特征变量, 拥有过多的维数容易导致过拟合问题, 所以我们需要对数据进行降维. 除了平常使用的PCA和t-SNE等方法外,我们还可以选择克拉默相关系数、最大信息系数、皮尔逊相关系数等方法. 我们选择使用皮尔逊相关系数来进行连续特征的筛选. 皮尔逊相关系数是一种线性相关系数, 是最常用的一种相关系数, 记为r, 用来反映两个变量X和Y的线性相关程度, 值介于-1到1之间.相关系数越接近于1或-1, 相关性越强, 相关系数越接近于0, 相关度越弱. 通过计算特征间的皮尔森系数进行特征降维, 两个特征间皮尔逊相关系数高于0.95已经是属于极强相关, 可以随机选择删去一个. 基于上述的方法, 可以用减少特征数量的方式实现对数据的降维.

3.4 评价指标

为了验证该模型的性能, 选择ACC、F1-Score、Precision和AUC作为评价指标, 其中AUC表示预测的正样本排在负样本前面的概率, 相较于ROC能够更好的评价模型性能. 混淆矩阵如表2所示.

表2 混淆矩阵

3.5 结果分析

将我们所提出的融合模型与其他3个模型进行比较, 通过在3个数据集上进行的实验可以看出, 本文所提出的模型较LightGBM、DeepFM、CatBoost来说,在AUC、ACC、Precision和F1-Score这些指标上面均有明显提升, 说明本文所提出的模型有效的提升了信贷违约预测准确度.

从表3中我们可以得到如下结论: 我们提出的模型, 在4项指标上对比LightGBM、DeepFM和CatBoost模型均有提高, 其中AUC最高提升了12.47%,F1-Score最高提升了2.8%,ACC最高提升了9%,Precision最高提升了9.07%. 通过对表4和表5中实验指标的观察分析, 可以看出我们提出的模型也优于其他模型, 证实了我们所提出的模型有效提升了预测精确度.

表3 German数据集实验结果对照表

表4 Lending club数据集实验结果对照表

表5 L&T数据集实验结果对照表

3.6 预测结果解释

我们用信贷违约预测模型的目的是判断一个客户在未来产生违约的可能性. 通过前边的实验分析, 可以说该模型适用于信贷机构的需求, 但是想要理解一些客户为什么会被预测为违约, 而其他客户不会被预测为违约, 同时风控部门也需要评估模型所作出的预测是否值得相信. 因此, 本文认为能解释每个模型的预测是获取信任的一种重要方式.

为了实现这一目标, 通过LIME方法来研究预测结果中不同特征的贡献, 可以证明我们的模型是值得信任的. 这将极大地改善风控部门原有复杂模型解释性不足的问题.

对于本文所提出的融合模型在公开数据集上的预测结果(图3-图5), 利用事后解释机制LIME进行可视化解释, 输出了模型对这3个数据集中单个样本的解释结果, 分别显示影响样本预测结果重要性前10的特征, 及其相应贡献度和特征对应的值. 第1列表示从预测模型得到的负面结果和正面结果的预测概率, 第2列显示某个特征对正面或负面结果的贡献, 为了清楚起见, 只显示了前10个特征. 第3列显示特征的原始数据值或将离散变量经Label编码后的值.

图3 German数据集样本预测结果解释

接下来, 如图3所示, 可以看出模型对该客户有72%的概率相信其不会违约, 那么模型预测该客户大概率不会违约的理由就是基于该客户信用卡额度、借贷持续时间、储蓄账户、年龄这些因素, 另外活期存款、房屋状况、目的, 成为了预测该用户不会违约的一个干扰. 这种解释结果在现实世界中是有意义的, 并揭示了我们可以在一定程度上信任我们的预测模型.

在图4中, 对于该客户模型有74%的概率相信他不会产生违约行为, 根据解释结果可以得出, 该客户在12个月中除了医疗收藏品以外的收藏品数目、借款利率、借款目的、12个月内的贷款冲销总数这些方面信用是十分好的, 但是该客户现在拖欠账目的逾期情况、过去12个月的征信查询次数, 会对系统的解释结果产生负面影响. 用户通过可解释性结果了解自己接下来需要在哪方面进行改进.

图4 Lending club数据集样本预测结果解释

从图5看出, 我们的融合模型判断该客户违约的概率是72%, 可解释机制给我们的解释就是基于该客户在过去6个月的贷款违约次数、贷款资产的价值这些方面信用不好, 导致了该预测结果, 另外该客户在资产成本、年龄这些方面的表现还是不错的, 接下来可以继续加强, 以提升自己的信用度.

图5 L&T数据集样本预测结果解释

4 结论与展望

本文为了获得具备可解释性的信贷违约预测模型,通过不同模型间的异质集成, 以融合的方式构建了一个由LightGBM、DeepFM和CatBoost算法组成的异质融合模型, 用于信贷审批时预测申请人的违约风险.在基于Stacking策略的融合模型中, 采用LightGBM、DeepFM和CatBoost三个不同的模型作为第一层的预测模型, 然后我们使用CatBoost作为第二层模型, 在预测精确度、泛化性能等方面都有较好的表现. 实现了信贷违约预测模型预测精确度的提高. 此外, 通过引入事后解释机制LIME, 也显著的提升了模型的可解释性. 通过在3个公开数据集上的实验表明, 本文建立的融合模型可以在准确预测信贷违约的同时, 又兼具可解释性. 对于具备解释性的黑盒信贷违约模型的研究有一定的现实意义. 此外, 本文采用融合模型在提升准确度的同时, 还存在的时间效率较低的问题, 在后续的研究中, 我们希望能够改进特征选择方法, 进一步降低原始特征中存在的冗余和噪声, 将有意义的特征输入机器学习模型中进行训练, 同时通过网格计算实现资源共享, 使用多线程模式结合基模型, 合理利用硬件资源, 以提高基于融合方法模型的时间效率.

猜你喜欢

解释性信贷样本
规划·样本
人大专题询问之“方城样本”
英汉互译中的认知隐喻翻译探究
随机微分方程的样本Lyapunov二次型估计
一种基于词语计算的模糊分类系统的设计方法
“官员写作”的四个样本