卞凌志,王直杰
(东华大学信息科学与技术学院,上海 201620)
(*通信作者电子邮箱wangzj@dhu.edu.cn)
随着金融业的不断发展,向商业银行贷款的人数也越来越多,这在增加了银行可周转资金的同时也使银行面临信用风险的威胁[1]。根据中国银行业监督管理委员会统计,银行不良贷款余额近年来呈上升趋势,因此,构建有效、可靠的信用评分模型对于银行避免损失和在激烈竞争的市场中生存至关重要[2]。
利用借款人个人信息对违约概率进行预测可以衡量借款人无法偿还债务的风险。为了提高信用评分的准确度,要求对借款人的信息进行全面的分析并建立合适的模型。
目前信用评分的模型可分为两类:一种是基于传统统计学习的方法,另一种是基于机器学习的方法。传统基于统计学习的方法利用数据在统计方面的性质和规律进行建模,主要的方法有逻辑回归(Logistic Regression,LR)与线性判别分析(Linear Discriminant Analysis,LDA)。如Steenackers 等[3]利用LR 的统计学习思想对信用评分进行建模;Baesens 等[4]分别使用LDA与LR方法对信用评分进行建模。LR使用极大似然法的迭代方式,从而找到参数中最接近真实的估计值;LDA通过计算原始分类样本的均值与方差,并计算新的样本在投影后得到的特征属于各分类的概率。这两种方法可以有效解决各种分类问题,但是统计学习强烈依赖于独立变量和非独立变量之间的线性关系,不能有效地利用现有的特征学习的方法,因此预测准确度不高。继传统方法后,在分类问题中逐渐开始使用基于集成学习的机器学习方法,集成学习在信用评分模型中的应用分为装袋法(Bagging)和提升法(Boosting)。Bagging 方法的主要想法是分别训练几个模型,并对这些模型进行平均,从而得到较好的模型,如Breiman[5]提出了随机森林(Random Forest,RF)方法,将每个决策树得到的结果进行平均,可以有效提高单个决策树模型的预测结果准确度,并用于解决各类回归与分类问题。Boosting 方法的主要想法是将弱分类器组装为强分类器,常用的方法有Freund 等[6]提出的自适应增强(Adaptive Boosting,AdaBoost)和Friedman[7]提出的梯度提升决策树(Gradient Boosting Decision Tree,GBDT)。近年来,Chen 等[8]提出的极端梯度提升(eXtreme Gradient Boosting,XGBoost)高效地实现了GBDT 算法并在算法上的有许多改进。Ke 等[9]提出的轻量级梯度提升机(Light Gradient Boosting Machine,LightGBM)算法同样高效地实现了GBDT算法,在原理上与XGBoost 算法相似,但是LightGBM 具有更快的运行速度并且可以直接处理类别数据。XGBoost 与LightGBM 都是竞赛中常用的方法,在对提取好的特征进行训练分类中都能取得不错的效果。各类集成学习的方法广泛应用于信用评分模型中,在不同的数据集上表现各不相同,在预测结果上仍然具有改进的余地。
在近三年的信用评分研究中,Arora等[10]提出了基于嵌入式的Lasso 方法的改进版本,即Bolasso 方法分别改进支持向量机(Support Vector Machine,SVM)、朴素贝叶斯(Naive Bayes,NB)、K-近邻(K-Nearest Neighbors,KNN)与随机森林算法建立信用评分模型,该方法在训练数据有轻微变化时,可以选择不同的特征子集,但在预测准确度上仍有提升的空间。Moscato 等[11]使用常用的机器学习方法与可解释人工智能工具,在信用评分问题中同时评估分类器的准确性性能及其可解释性,但仅在一个数据集上进行了研究,模型的泛化能力有待改进。
本文在模型方面选择Zhou 等[12]提出的多维多粒度级联森 林(multi-dimensional and multi-grained cascade Forest,gcForest)算法。这是一种基于随机森林的算法,通过多维多粒度扫描提出数据的特征,利用级联森林模块去学习并生成模型,通过引入层的概念很好地解决了RF、XGBoost、LightGBM 等集成树算法容易过拟合的问题。为了进一步提高特征提取的多样性,并在增加随机森林层数后避免梯度爆炸或梯度消失问题,从而能在保持之前的模型效果的基础上继续增加学习特征的能力,借鉴深度学习中残差网络的结构,在gcForest 的基础上进行改进,本文提出了多维多粒度级联残差森林(multi-dimensional and multi-grained cascade residual Forest,grcForest)模型,并考虑了信用评分建模的整个过程,包括数据预处理、建立模型、调参、算法改进和评估。通过AUC(Area Under Curve)、准确率等评价指标对模型结果进行论证,同时与现有的各种机器学习算法在四个不同的信用评分数据集上进行对比。
gcForest是一种决策树集成方法,通过级联的方式堆叠多层随机森林,以获得更好的特征表示和学习性能。相较于深度学习,gcForest 只需要很少的训练数据,就能获得很好的性能,而且基本不需要调节超参数的设置。gcForest由两部分组成:级联森林与多粒度扫描结构。
在级联森林中,每一层都可以包含多个不同的随机森林,这样能够增强模型的泛化能力。如图1 所示,在实验中使用了两种随机森林:随机森林(实线)与极限森林(虚线)。级联森林的层数可以自己确定,每一层随机森林学习输入特征向量的特征信息,经过处理后输入到下一层,每层结束后都会在验证集上进行估计,如果预测效果没有明显提升,就不再继续增加深度,训练过程就会终止。
图1 级联森林结构Fig.1 Structure of cascade forest
在级联森林中,随机森林的每棵决策树对于输入特征向量都会产生一个关于每类的预测概率,对所有决策树产生的概率分布向量进行平均就得到随机森林输出的类分布向量。然后将这些类分布向量与原始的特征向量进行拼接,得到下一层的输入向量,不断迭代直到收敛为止。
受到卷积神经网络的启发,对输入特征使用多粒度扫描的方式产生级联森林的输入特征向量。
例如在图2 中对于400 维的输入数据,如果采用100 维的滑动窗口对输入特征进行处理,最终得到301个100维的特征向量。在本实验中使用多个不同大小的滑动窗口,从而生成不同粒度的特征向量。
图2 多粒度扫描结构Fig.2 Structure of multi-grained scanning
图3 是gcForest 模型的总体框架图,假设输入特征为400维,多粒度扫描模块具有3 个滑动窗口,并使用这些数据作为一个随机森林和一个极限森林的输入,如果是二分类预测,那么能得到1 204维特征向量,然后输入到第一级级联森林中进行训练。
图3 gcForest模型的总体框架Fig.3 Overall framework of gcForest model
另外两个窗口扫描后分别得到804维与404维特征向量,将它们用于训练二级和三级级联森林,不断重复这一过程,直到验证性能收敛为止。
类似于深度神经网络(Deep Neural Network,DNN),随着随机森林层数的增加,模型能够获取的特征与信息也就越多,但也有可能出现梯度消失或梯度爆炸的问题。针对这一问题,在神经网络中引入了残差网络(ResNet),使得在增加网络层数后能在保持之前的模型效果的基础上继续增加学习特征的能力。
为了在gcForest 中增加随机森林层数时避免梯度爆炸或消失问题,提出了grcForest,即在级联森林模块中也采取类似残差网络的结构,将第一层随机森林得到的结果加到后面的随机森林输入特征中,从而提高了特征提取的多样性,并使得在增加随机森林层数时模型能够在保留之前效果的基础上向最优值靠近。
如图4~5 所示,输入特征在经过多粒度扫描后的特征值输入两类随机森林中,由于实验为二分类问题,因此每个随机森林产生两个分类结果,将这些结果保存下来并与相应的多粒度扫描得到的特征值一起输入后面每一层的随机森林中,不断重复这一过程,直到验证性能不再提高为止。
图4 grcForest流程Fig.4 Flowchart of grcForest
图5 级联残差森林结构Fig.5 Structure of cascade residual forest
在分类算法中,常见的分类指标有准确率Acc(Accuracy)、精确率Pre(Precision)、召回率Rec(Recall)、真正例率TPR(True Positive Rate)、假正例率FPR(False Positive Rate)、F1-Score、ROC(Receiver Operating Characteristic)曲线[13]、AUC(Area Under Curve)[14]等,这些指标都要通过混淆矩阵(Confuse Matrix)中的真正类TP(True Positive)、假负类FN(False Negative)、假正类FP(False Positive)和真负类TN(True Negative)进行计算。此外,Brier 分数BS(Brier Score)[15]也经常用于分类问题中,它的值越低就代表预测结果越好。
准确率Acc是预测正确的概率:
精确率Pre指正确预测为正样本(TP)占所有预测为正样本(TP+FP)的比率:
召回率Rec指正确预测为正样本(TP)占所有正样本(TP+FN)的比率:
精确率和召回率是相互影响的,F1-Score值可以同时兼顾两者:
真正例率与召回率公式相同,都表示正确预测为正样本占所有预测为正样本的比率:
假正例率指错误预测为正样本占所有实际为负样本的比率:
ROC曲线是以FPR作为X轴,TPR作为Y轴的函数。AUC值是ROC 曲线与X轴、Y轴围成的面积,AUC值越接近1,则预测方法的真实性越高。
其中:n是样本的数量;r是类别;fti是模型预测第t个样本的类别为i的概率;oti是第t个样本的真实值(类别为i则取1,否则取0)。
在本文中,主要使用的评价指标是AUC与Acc,其他一些指标(F1-Score、BS与TPR)也作为参考一同列出。
在信用评分模型中,借款人的各种个人信息一般包括如贷款金额、期限、年龄、职业、银行存款、住房情况、消费记录、还款记录等数据。由于数据集中还包含许多类别数据与无用数据,因此在建模前要先对数据进行预处理。在填补缺失数据并将类别数据转化为数值后对数据进行特征提取,常用的特征提取方法有卡方检验[16]、主成分分析(Principal Component Analysis,PCA)、递归特征消除(Recursive Feature Elimination,RFE)[17]、线性判别分析[18]等方法。本文中使用RFE方法进行特征提取。
实验中数据集使用机器学习开放数据集网站UC Irvine Machine Learning Repository 中的德国、澳大利亚信用数据集[19],Kaggle 网站上的公开信用数据集与P2P 平台Lending Club网站上的贷款数据[20]。
在有些数据集,如Kaggle 与P2P 数据集中存在一些丢失数据,如果丢失数据为数值类型,则用平均值填充;如果为类别类型,则用众数填充,并用数值对这些类别进行编码替代。在P2P 数据集中样本过大,有423 808 组数据。由于边际效应,过多数据并不会提高模型准确度,反而大幅地降低了模型效率,因此对数据集进行随机抽样,对正、负样本分别抽取5 500组数据组成新的数据集。
表1 所示为数据预处理后的实验数据集与它们的数据维度、样本大小与样本正负比。
表1 实验中的数据集Tab.1 Datasets used in experiments
此外,在这些数据集中除了建模必要的信息外还有许多冗余的数据,如果直接输入机器学习模型中可能会降低学习效率,因此先对这些数据集使用RFE方法进行特征提取。
为了证实对gcForest 方法改进的有效性,在不同数据集上将grcForest 与未改动的gcForest 方法以及其他当下常用的信用评分方法进行对比实验,并与近几年其他文献在信用评分模型上的表现进行对比。在每个数据集的实验中使用5 折交叉验证的方法提高实验结果的可靠性。
表2~5 是分别使用随机森林(RF)、逻辑回归(LR)、XGBoost、LightGBM、gcForest 与改进后的grcForest 对3.2 节中经过预处理的德国、澳大利亚、Kaggle 与P2P 数据集进行分类预测后得到结果的各项指标。可以看到grcForest模型在各数据集上都表现出色。
表2 各模型在德国数据集上的结果Tab.2 Results of different models on German dataset
在德国数据集中,grcForest的AUC值为0.768,排名第一,比排名第二的gcForest 高0.005,比第三的LightGBM 高0.012;而Acc值为最高的0.75,超过排名第二的gcForest 0.011,比LightGBM 高0.035;在其他指标中也都是最好的。因此在德国数据集中,grcForest效果最好。
表3 各模型在澳大利亚数据集上的结果Tab.3 Results of different models on Australian dataset
在澳大利亚数据集中,grcForest 的AUC值是最高的,为0.919,比排名第二的gcForest 高0.010;Acc值与RF 相同,排名第二,都为0.877,比gcForest 高0.054,而最高的XGBoost为0.891;BS值为0.098,仅比最低的LR 高0.002,在其他指标中也都优于gcForest。因此在澳大利亚数据集中,grcForest与XGBoost效果较好。
表4 各模型在Kaggle数据集上的结果Tab.4 Results of different models on Kaggle dataset
在Kaggle 数据集中,grcForest 的AUC值为0.761,排名最高,比第二的gcForest 高0.003;Acc值为0.818,排名第二,略低于第一的LightGBM,比gcForest 高0.003;在其他指标上也都表现稳定。grcForest 与LightGBM 在Acc和BS上仅差0.001而在其他指标上都略优于LightGBM;在关键的指标AUC与Acc上均略高于gcForest,因此在Kaggle 数据集中,grcForest 效果最好。
表5 各模型在P2P数据集上的结果Tab.5 Results of different models on P2P dataset
在P2P 数据集中,grcForest 的AUC值是最高的,为0.9,比gcForest 高0.003;Acc值为0.824 排名第二,与gcForest 相同,比第一的LightGBM 低0.004,但在其他指标上都优于LightGBM;在指标F1-Score、BS和TPR上均表现最好。因此在P2P数据集中,grcForest效果最好。
在近三年信用评分模型研究中同样有在现有机器学习模型基础上进行改进的,在表6 中将grcForest 与文献[10]中经过Bolasso 方法改进的SVM、NB、KNN 与RF 算法(简写为BSSVM、BS-NB、BS-KNN 与BS-RF)使用信用评分模型中最重要的两个评价指标:AUC与Acc进行对比。由于在该文献中没有在澳大利亚与P2P 数据集上进行实验,因此只在德国与Kaggle数据集上进行对比。
表6 grcForest模型与其他文献算法效果对比Tab.6 Effect comparison of grcForest model and other models in literatures
从表6 可以看出,grcForest 的AUC值在两个数据集中都是最高的,Acc值也都表现不错,明显优于经过Bolasso 方法改进后的SVM、NB 与KNN 算法;虽然Acc值低于BS-RF 算法,但AUC值均更高。在信用评分模型中,相较于Acc指标,AUC更能对一个模型作出全面的评价,因此grcForest 的表现是最好的。
图6~9 是各模型在4 个数据集上的ROC 曲线,并在曲线下方列出了各模型对应的AUC值。
图6 各模型在德国数据集上的ROC曲线Fig.6 ROC curves of different models on German dataset
结合表2~5中的各项评价指标可以看出如下几点:
1)在当下常用的信用评分方法中,LightGBM 与XGBoost比其他方法的效果更好。
2)在各数据集上gcForest 与LightGBM、XGBoost 方法效果接近。
3)改进后的grcForest 比gcForest 方法表现更稳定,效果更好,除在澳大利亚数据集中与XGBoost 结果相当,在其他数据集中均表现最好,其AUC值相较于LightGBM 平均高1.13%,相较于XGBoost平均高1.44%。
图7 各模型在澳大利亚数据集上的ROC曲线Fig.7 ROC curves of different models on Australian dataset
图8 各模型在Kaggle数据集上的ROC曲线Fig.8 ROC curves of different models on Kaggle dataset
图9 各模型在P2P数据集上的ROC曲线Fig.9 ROC curves of different models on P2P dataset
随着计算机科学的不断发展,信用评分模型也得到不断改进,从而更好地帮助银行抵御信用风险。本文将一种深度森林的机器学习方法gcForest 应用于信用评分,并在此基础上对gcForest 进行改进,将级联森林模块中第一层随机森林得到的结果加入后面每一层随机森林的输入中,从而提升了在信用评分模型中的效果。
在未来的工作中,信用评分模型仍然有一些可以改进的地方,例如将grcForest与其他机器学习算法进行融合;使用优化算法对grcForest 的超参数进行优化;对多粒度扫描模块进行优化并使运行速率得到提升。