1. 引言
随着我国经济进入稳步增长的新常态模式,国内金融信贷行业迅速发展,许多金融信贷服务逐步下沉到社会大众。而且受2008年次贷危机的影响,传统的企业金融业务增长乏力,大量金融机构开始愈加重视个人信贷业务,加上互联网金融的异军突起,个人的信用消费也变得越来越普遍,与之相辅相成的是对个人信用评估的迫切需求。
个人信用评估是基于个人的基本信息和历史信用数据,通过机器学习、数据挖掘等技术建立信用评分模型,对个人的信用进行量化评估。在个人信用评估研究领域,各种统计学方法和机器学习方法被大量运用 [1] [2] 。I-Cheng Yeh和Che-hui Lien对K近邻、Logistic回归,线性判别分析,朴素贝叶斯,人工神经网络,决策树这六种模型在信用卡违约概率预测问题上进行了比较,结果表明人工神经网络的预测准确度最高 [3] 。姜明辉等人针对单一模型在信用评估问题上存在的不足,将RBF神经网络和Logistic回归的预测结果进行加权组合,结果表明组合模型更加稳健且有着更高的预测精度 [4] 。叶晓枫和鲁亚会在随机森林特征选择算法的基础上构建朴素贝叶斯信用评估模型,发现两种算法组合后的模型有效提高了朴素贝叶斯模型的分类精度 [5] 。Paolo的研究表明,结合马尔可夫链蒙特卡罗计算方法的贝叶斯模型,能够成功应用在基于高维度复杂数据集的信用评分问题上 [6] 。Lee等人将反向传播神经网络与判别分析相结合,发现这种混合方法的收敛速度远快于传统的神经网络模型,而且信用评分的准确度要优于判别分析和Logistic回归 [7] 。Baesens等人基于八个真实的信用评分数据集进行实证分析,发现最小二乘支持向量机和神经网络分类器预测性能非常优异,但是一些简单的分类器例如Logistic回归和线性判别分析同样表现良好 [8] [9] 。Farquad等人提出一种联合PCA和SVM的信用评分模型,结果表明PCA-SVM混合模型的预测精度要高于单独的SVM模型 [10] 。David West等人在多重感知机神经网络的基础上,利用CV(交叉验证),Bagging和Boosting三种集成策略建立集成分类器,发现集成神经网络在降低泛化误差方面要显著优于最好的单一预测模型,但是三种不同集成策略的性能却没有明显的差别 [11] 。
本文基于Stacking集成算法的框架,构建了两层集成学习器,初级学习器采用四个预测精度较高的非参数机器学习算法,这些非参数方法对数据的分布不做假设,能够很好地捕捉大样本、高维度数据中的复杂非线性关系。次级学习器采用传统的统计学方法Logistic回归,Logistic回归虽然分类精度低于一些非参数智能算法,但是简单易操作且有着很好的稳定性性,能够有效降低集成模型过拟合的风险。
2. 集成模型
集成学习通过对若干弱学习器进行适当的组合来得到预测性能较强的学习器。图1展现了集成学习

Figure 1. Structure of ensemble learning
图1. 集成学习结构
的一般结构,每个基学习器由特定的学习算法从数据中产生,然后经过适当的组合策略来得到最终的预测模型。
集成学习预测效果的好坏主要取决于两个方面:一个是基分类器的预测精度,显然基分类器的分类准确率越高,集成学习的效果也会越好;另一个比较重要的方面就是基分类器的多样性,所谓多样性就是希望所有的基学习器相互之间能够有一定的差异。如果所有基学习器都产生了相同的预测结果,集成模型的预测效果也不会改善,反而会增加建模的复杂性。所以我们希望不同的基学习器能够“好而不同” [12] ,从而实现不同基学习器之间的强强联合和优势互补。
Bagging和Boosting是最具代表性的两种集成学习算法。Bagging通过对给定的训练集进行等概率、有放回的抽样来得到若干训练集,然后用这些不同的训练集来训练出一系列基分类器。Boosting在进行基分类器的构建时,会对之前预测错误的样本增加抽样权重,从而每一轮训练都是基于不同分布的数据样本,并在最后集成时会考虑每个基学习器的预测效果,进行加权平均。
Bagging和Boosting一般都是基于单一的机器学习算法,比如决策树模型。而Stacking则是通过组合多种机器学习算法来提升分类器的泛化性能。它先从原始训练集中训练出初级学习器,然后以初级学习器的预测结果作为特征来训练一个次级模型,比如最简单的次级模型就是对多个初级基学习器的结果进行简单投票。Stacking依靠不同学习算法的差异来保证基学习器的多样性,而且通过次级学习器以最佳的方式来整合不同基学习器的预测结果,相对Bagging和Boosting,Stacking往往预测精度更高,而且过拟合的风险会更低 [13] 。
本文构建的个人信用评估模型的示意图如图2所示。
我们先对原始数据采取一些预处理措施和特征降维,然后将数据划分成训练集和测试集两部分,分别进行模型的训练和结果的预测。为了便于比较Stacking和Bagging、Boosting的预测效果,我们将Bagging的代表性算法RF (随机森林)和Boosting的代表性算法GBDT (梯度提升树)作为初级学习器的组成部分,另外两个初级的基学习器是经典的机器学习分类算法SVM (支持向量机)和ANN (人工神经网络),次级学习器采用稳定性较高的Logistic回归算法。
3. 实证分析
本文采用来自UCI的台湾地区信用卡客户违约记录数据,包含30,000条样本,24个变量,具体的变量描述如表1所示,响应变量为Y,表示客户是否违约,其余23个变量都是解释变量,其中包含9个离散变量,14个连续变量。
3.1. 数据预处理和降维
我们对客户的年龄变量采取离散化处理,将客户年龄划分成5个区间:25岁以下,25~35岁,35~45

Figure 2. Structure of personal credit assessment model
图2. 信用评估模型结构
表1. 变量描述
岁,45~60岁,60岁以上。变量离散化后对异常数据有更强的鲁棒性,并且能够提升学习算法的训练效率。另外我们对数据采用如下公式所示的标准化处理:
(1)
其中
表示变量的均值,
表示变量的标准差。根据正态分布的3
原理,标准化后大概有99.7%的变量值被压缩到−1和1之间,对于落在区间[−1,1]之外的值均设为−1和1,这样处理既能保证变量的取值全都落在一个相同且较小的范围内,消除不同变量量纲和数值的差异,又能降低一些极端值对建模带来的负面影响。
图3是13个连续型解释变量的相关系数图,图中数字颜色的深浅反映出相关系数绝对值的大小,从图3可以明显看出
这6个解释变量呈现出非常强的正相关性,存在较多重叠和冗余的信息。
为了剔除这几个变量中存在的大量冗余信息,降低建模的复杂度,我们采用主成分分析方法对这几个解释变量进行降维处理。主成分分析通过对协方差矩阵做奇异值分解,将大量相关性很高的变量转化成几个相互独立、且能解释大部分原始数据信息的主成分。主成分分析的结果如表2所示,从表中可以看到第一主成分就贡献了原始数据90%的信息,因此我们用第一主成分代替
这六个解释变量。

Table 2. Results of principal component analysis
表2. 主成分分析结果
3.2. 预测分析和结果比较
我们利用分层随机抽样按照3:1的比例将原始数据划分成训练集和测试集两部分,训练集包含22,500个样本,测试集包含7500个样本。模型的建立主要利用R软件中的caret包来完成。对于所有的基学习器,均采用10折交叉验证的网格搜索法来确定重要超参数的取值。选择分类正确率和AUC值作为模型的评价指标。分类正确率是正确分类的样本数占总样本数的比例,反映了模型的整体分类精度。AUC值代表模型ROC曲线下的面积,常被用来判断一个二值分类器的优劣,是对正例分类精度和反例分类精度的综合度量,AUC取值在0.5到1之间,越接近1表示分类器的效果越好 [14] 。所有模型的预测结果如表3所示。

Table 3. Prediction results of different models
表3. 不同模型预测结果
在表3的6个模型当中,前4个模型是我们建立集成模型所采用的四个单一初级分类器,第5个模型简单投票法采用“软投票”策略,即对所有初级分类器的输出概率求算术平均,然后选择合适的阈值进行结果预测。最后一个模型就是我们基于Stacking构建的两层集成模型,在这个模型当中,同样是利用初级学习器的输出概率来训练次级学习器,相比于初级分类器产生的二值分类结果,概率结果包含了更多基分类器在数据里发现的模式和信息。
由表3可知在训练集上RF的分类正确率最高,几乎达到了百分之百,简单投票法和Stacking集成模型的分类正确率也都超过了90%,另外三个模型的分类正确率都低于85%。在更能反映模型泛化能力的测试集上,Stacking集成模型的分类正确率最高,达到了85.31%,比最好的单一分类器GBDT高了3.02%,而在训练集上表现非常好的RF的分类正确率只有82.12%,这说明RF存在着一定程度的过拟合。简单投票法在训练集和预测集上的分类正确率分别达到了91.20%和82.24%,要高于四个单一模型86.92%和81.76%的平均分类正确率,这说明简单的集成也能在一定程度上提升分类效果,但简单投票法在训练集和测试集的分类正确率都要显著低于Stacking集成模型,表明通过训练第二层的Logistic分类器能够产生对初级学习器更好的组合方式。AUC值的结果同样体现了Stacking集成模型有着最优的泛化性能。
4. 结束语
近年来,随着我国经济的快速发展,消费信贷业务也增长迅速,住房按揭、助学贷款、信用卡等各种个人信贷业务的规模不断增长。但是相对于西方发达国家,我国个人征信系统的建设并不完善,大量人群的信用数据严重缺失,很多金融机构开始广泛采集用户的基本资料、信贷记录、信用卡使用情况等各种信息来构建自身的数据仓库。但是这些数据往往存在着样本量大、维度高、多元化、冗余化等特点,这也对传统机器学习模型的处理能力提出了挑战。集成学习的出现很好地解决了这一问题,其通过产生若干基学习器然后进行组合,对原始数据的信息进行了最大化利用,获得了比单一学习器更加优越的泛化性能。
本文利用Stacking集成框架,构建了两层分类器的个人信用评估模型,第一层模型采用分类精度较高的机器学习算法,第二层模型采用稳健性较好的Logistic回归方法,实现了预测精度和模型稳健性的统一。在UCI信用数据集上的实证分析结果表明,Stacking集成模型的分类精度要优于单一的机器学习模型,包括基于Bagging和Boosting构建的单一模型,同时该模型的效果也要优于仅仅对多个单一模型进行简单投票表决的方法,这为金融机构建立个人信用评估系统提供了一种新的思路和方法,也为构建多层Stacking集成的个人信用评估模型提供了参考和借鉴。