时间:2024-05-04
高艺婕
(上海外国语大学数据科学与大数据技术系, 上海 201620)
历史证明,信贷风险是商业银行最主要的风险之一,因此有效地预测和管理信贷风险对于银行和其他金融机构都具有重要意义[1]。 随着大数据和人工智能技术的发展,银行收集到的大量用户行为数据能够得到更好的利用,传统信贷模式下信息不对称、违约风险高等问题也随即获得了解决和改善的有效途径和方法[2]。
预测借款人是否违约是一个二元分类问题。 由于机器学习可以解决大样本量和多特征之间的复杂关系,故可广泛用于信贷违约预测[3-4]。 为此,本文研究考虑了随机森林、决策树、逻辑回归、K 近邻、朴素贝叶斯、BP 神经网络六种机器学习基模型,用贝叶斯优化分别寻找其最优参数,随后用Voting、Starking、Adaboost 集成方法建立提高预测精度的集成学习模型。
本文的数据来源为UCI 数据库中的台湾信贷数据集,包含5 个数据维度、23 个数据指标。 数据集中字段说明见表1。 由表1 可知,申请人信息包含了性别、婚姻状况、受教育程度等,与客户的消费观念和消费行为具有一定的关联;历史偿还情况、历史账单金额、历史还款金额维度的指标则能体现借款人过去的消费习惯和信用状况,并以此为根据预测其未来的还款行为。
表1 数据集字段说明Tab. 1 Explanation of datasets
总样本中正负样本的占比不均衡的时候, 模型的输出就会偏向于多数类的结果。 因此,对不平衡数据进行建模前应首先将其转化为平衡数据。 本文所采用的数据共30 000 条有效样本,其中正例仅有6 636 条,占总样本的22.2%;而负例有23 364 条,占总样本的77.8%,显然是非平衡的样本。 对于不均衡的数据,最直接、最有效的方法就是生成少数类的样本。 这种方法称为过采样(Over Sampling),通过对少数类样本的随机采样增加样本个数,使得每类样本的比例为1 ∶1。
(1)逻辑回归(Logistic Regression)。 是一种广义的线性回归分析模型,属于机器学习中的监督学习,常用来解决分类问题[5]。 因为二分类问题的标签是0 或1,在特征和权值线性相乘累加之后,逻辑回归用逻辑函数将最后的预测值映射到[0,1]之间,能够避免线性回归的输出值远大于1 或远小于0 的问题[6]。 本实验中的逻辑回归模型采用Sigmod逻辑函数,可用如下公式进行描述:
(2)决策树。 在机器学习中,决策树是一种分类预测模型,表示对象属性与对象值之间的映射关系。 该方法的训练步骤是:从一个根节点出发,对一个样本进行测试,不断将样本分配到分裂的子树上,直至该样本被指派到其对应的一个最小子节点上。通过这种方式,样本被递归地测试和分配,直至到达叶节点,最后分配给叶节点的类[7]。
在本实验中,采用基尼系数作为分裂标准的决策树、即CART 决策树。 这种决策树在信用评分领域被广泛使用。 基尼系数的计算公式见如下:
其中,pk是在树的第k个分区或节点中被错误分类的样本的比例。 基尼系数越低、表示模型的区分度越高,越适合用于分类预测。
(3)随机森林(Random Forest)。 是一个包含多个决策树的分类器,其输出的类别由其中所有单个分类器输出的众数而定。 随机森林在使用Bagging技术集成决策树的基础上,进一步在决策树的训练过程中引入了随机选择机制,使每棵子树分别在随机采样的样本子集上训练[8]。 此外,随机森林中,基决策树每个结点的划分属性也是从随机的属性子集中选择的。 这种随机性使得随机森林中的每颗决策树能够学习到不同属性对分类的贡献,一定程度上避免了过拟合的问题[9]。
(4)K 近邻(K-Nearest Neighbor)。 是基于先例的学习,是惰性学习一种。 K 近邻示意如图1 所示。研究中,已知某待分类的测试样本,可以选择适当的距离度量,确定训练集合中最相邻的k个样本,并用其来实现预测分类[10]。 对K 最近邻法的分类效果,主要受距离计算方法、查询邻居的数目和判别方法等因素的影响。 常见距离的计算公式是曼哈顿距离、欧氏距离、切尔谢夫距离。 对于邻近点的数量k,如果k的数值比较小,那么邻近点的计算复杂度就会很高,并且很可能会发生过拟合;如果k值较大,模型就会变得太过简单,产生欠拟合。 所以,正确选取k值对于分类效果有很大的影响。 在选择分类决策算法的时候,通常采用的是多数票投票,也就是由输入实例的k个近邻中所属类别最多的类别来确定输入实例的分类。
图1 K 近邻示意图Fig. 1 Illustration of K-Nearest Neighbors
(5)朴素贝叶斯。 是一种经典的机器学习算法,其原理是以贝叶斯概率论为基础的,通过对先验概率和条件概率建模来进行分类判别。 相较于其他绝大多数的分类算法、如决策树、KNN、逻辑回归和支持向量机等采用的判别方法,即对输出Y和特征X之间关系的直接学习,朴素贝叶斯更易于理解和实现。
朴素贝叶斯算法定义中有2 个关键内容:特征之间强假设独立和贝叶斯定理。 朴素贝叶斯的训练过程就是以概率模型为基础,在条件独立的前提下,根据已有训练集的分布来估计后验概率P(c |x):
(6)BP 神经网络。 BP 神经网络模型的学习过程由正向传播和误差反向传播两个部分组成。 在正向传递过程中,输入的数据由输入层传递,再由各个隐含层对其进行逐层处理,最后传递到输出层。 当输出结果与预期结果不一致时,则通过误差反向传播的方式,对各神经元间的链接权重矩阵进行调整,从而达到减小误差的目的。 在不断地学习中,将误差降低到了可以接受的程度。 具体步骤是:
(1)从训练集中选择一批样本输入到神经网络中进行训练。
(2)通过各个节点之间的连通性,进行正向、逐层的传播,从而获得神经网络的实际输出。
(3)根据损失函数计算实际输出与期望输出的误差。
(4)把误差逆向传递到网络每一层,通过对损失函数的微分来改变网络每一层中的参数权重,将整体神经网络的预测朝着误差降低的方向进行调节。
(5)对于训练集中的每一个样本,重复上述步骤,直到整个训练样本集合的误差减小至满足要求[11]。
(1)Stacking。 在复杂的分类任务、如信贷预测任务中,可以使用多种机器学习方法,而这些方法有时差异并不明显。 另外,使用单个模型的泛化能力往往比较弱。 因此,使用模型集成的方法可以将这些模型都保留下来,结合多个模型的优点,提升总模型的预测精度。 Stacking 就是一种典型的多模型集成学习方法,Stacking 示意如图2 所示。 研究可知,Stacking 就是一个多层模型,将第一层各模型的预测结果作为第二层的训练集,来学习一个新模型。这种方法通常被认为能够提高模型的准确性和稳健性。 为了防止过拟合,第二层学习器宜选用简单模型。 如在回归问题中,可以使用线性回归;在分类问题中,可以使用逻辑回归。
图2 Stacking 示意图Fig. 2 Illustration of Stacking
(2)投票集成算法(Voting)。 是一种将多个基本模型进行组合的集成方法,通过对基模型的预测结果进行投票或加权投票,从而获得最终的预测结果,可以应用于分类和回归问题。 常见的投票集成算法包括加权投票、软投票和硬投票等。 加权投票是指为每个基本模型分配一个权重,并将其加权后进行投票。 软投票是指对所有基本模型的预测结果进行加权平均,并将平均值作为最终预测结果。 硬投票是指对所有基本模型的预测结果进行投票,并将得票最多的类别或数值作为最终预测结果。
(3)Adaboost。 Boosting 集成算法是一种以弱分类器为基础,对弱分类器进行迭代增强,从而提高整合模型性能的方法。 Boosting 算法的核心思想就是加强对训练集中被错误分类样本的训练,使这些样本在下一轮训练中得到更多的关注,从而提高分类器的性能。 Boosting 算法的优点是能够在不增加模型复杂度的情况下提高分类器的准确性,同时也能够处理高维数据和噪声数据。 其中, Schapire 和Freund[12]提出的AdaBoost 算法是最具代表性的成果之一。
自适应增强(AdaBoost)、即Adaptive Boosting,其自适应性表现在每轮迭代中,对于被前一个基本分类器误分类的样本,其权值会增加,而对于正确分类的样本,其权值会减小。 依次调整样本权重后,再用这些样本来训练下一个基本分类器。 在每一次迭代中,都将添加一个新的弱分类器,直到整体模型达到预定的错误率要求或预先指定的最大迭代次数,才会确定最终的强分类器。 Adaboost 示意如图3 所示。
图3 Adaboost 示意图Fig. 3 Illustration of Adaboost
贝叶斯优化算法基于贝叶斯定理和高斯过程模型,是一种用于优化黑箱函数的方法。 在贝叶斯优化中,通过不断地选择函数的输入来尝试优化函数的输出。 每次选择都基于之前的尝试结果和先验知识,以便更好地探索和利用函数的特征。 贝叶斯优化常用于调参问题,其中目标是最小化目标函数的输出,而输入是超参数的取值。 通过贝叶斯优化,相比网格优化和随机优化,可以在更少的尝试次数内找到较优的超参数组合。 贝叶斯优化为待优化函数f:x→D构造了概率模型,利用该模型选择下一个评估点,依次迭代循环得到超参数最优解[13]。
假设有一组超参数组合X=x1,x2,…,xn以及待优化函数f,贝叶斯优化假设超参数与待优化函数存在一个函数关系,需要在x∈X内找到:
首先,根据不确定性和最小成本的原则,从采集函数中选择一些需要评估的候选点,即高斯过程回归中的决策规则:
贝叶斯优化算法主要核心步骤是先验函数和采集函数两部分。 其中,先验函数采用高斯回归过程,基于贝叶斯定理,将先验概率模型转换为后验概率分布。 采集函数采用改进概率(probability of improvement, PI)选择下一个评估点[14]:
模型后训练完成后,需要选择合适的指标来衡量不同模型的效果,以确认最终选择哪个模型。 对于二分类问题,样本分为正例和负例。 在本实验中,正例表示信贷违约的客户,负例表示按时还款的客户[15]。 对比样本的预测类别和真实类别,可以得到混淆矩阵,见表2。 在此基础上,又衍生出了一系列二分类模型评价指标。 对此拟做阐释分述如下。
表2 混淆矩阵Tab. 2 Confusion matrix
(1)准确率(Accuracy)。 是衡量分类效果的一个常用指标,是对某一数据进行正确分类的样本数量在总样本数量中所占的比例。 在样本均衡的条件下,准确率可以对模型进行客观的评估,但是在样本类型不均衡的情况下,尤其是在有极偏的数据的情况下,准确率很难对算法的优劣进行客观的评估。这里推得的Accuracy的计算公式为:
(2)召回率(Recall)。 是指正确预测的样本占总样本的比重。这里推得的Recall的计算公式为:
(3)精确率(Precision)。 是预测为正的样本占所有样本的比重。这里推得的Precision的计算公式为:
(4)F1分数(F1score)。 精准率和召回率存在一定此消彼长的关系,这是因为模型要么更倾向于将错误样本预测为正,要么更倾向于将正确样本预测为负。 为了综合考量精准率和召回率,提出了F1score。 这里推得的F1score的计算公式为:
(5)ROC曲线及AUC值。 经过训练集的训练后,二分类模型可用于预测测试集数据的类别概率。 为绘制ROC曲线,需将分类阈值在[0,1] 区间不断调整,计算出对应的真正例率(TPR) 和假正例率(FPR),并将其绘制在二维坐标系上,其中横轴为假正例率(FPR),纵轴为真正例率(TPR)。ROC曲线越接近坐标系的左上角[0,1] 点,说明分类器效果越好。ROC曲线下的面积、 即为AUC(Area Under Curve) 值,其意义在于反映正样本预测结果优于负样本预测结果的概率。 因此,AUC值可用于评估分类器对样本进行排序的能力,值越大代表分类器效果越好。
(6)交叉验证。 交叉验证是对模型进行检验的一种方法,能够科学评价模型的优劣,筛选出性能最佳的模型,并能有效地防止过拟合和欠拟合。 在本实验中,将采取五折交叉验证进行模型评估。 交叉验证示意如图4 所示。 交叉验证的主要步骤如下:
①将全部样本划分成k个大小相等的样本子集。
②依次遍历这k个子集,每次把当前子集作为验证集,其余所有子集作为训练集,进行模型的训练和和测试。
③把k次测试得分的平均值作为最终的交叉验证得分。
对各模型使用贝叶斯算法调参,其最优参数见表3。 准确率、召回率、精确率、F1分数和五折交叉验证得分见表4。 各个最优基模型在信贷数据集上预测的ROC曲线和AUC值如图5 所示。
图5 各基模型ROC 曲线和AUC 值Fig. 5 ROC curves and AUC values of each base model
表3 各基模型最优参数Tab. 3 Optimal parameters of each base model
表4 各基模型评价结果Tab. 4 Performance of each base model
实验结果表明,K 近邻和随机森林是表现较好的机器学习基模型,并在测试数据集上的五折交叉验证得分分别达到了0.763 和0.729,证明这2 个模型有不错的分类能力。 然而,K 近邻算法的准确率、召回率、精确率和F1分数都低于随机森林算法,表明K 近邻算法容易产生过拟合,并不是足够可靠的模型,对数据的排序能力也弱于随机森林。 对比之下,随机森林在拥有良好分类能力的同时,还表现出更高的可靠性和泛化能力。 所以,最终选择随机森林作为最优基模型,并将其运用于后续的集成方法中,以进一步提升信贷违约预测的准确率。
用Stacking 多模型集成方法将不同的模型堆叠起来,可以结合多个模型的学习结果,提升总模型的预测精度。 选取基模型中表现较好、可靠性也较好的朴素贝叶斯算法、随机森林算法、决策树算法和逻辑回归算法进行实验。 经过Stacking 集成后,集成模型的准确率比单个模型都有了显著的提升,结果见表5。 由表5 分析发现,逻辑回归、随机森林、决策树的组合以及朴素贝叶斯、随机森林、决策树的组合取得了更好的效果,在测试集上的交叉验证得分为0.815。
表5 Stacking 集成效果Tab. 5 Performance of Stacking ensemble model
用Voting 集成方法组合不同的模型同样选取朴素贝叶斯算法、随机森林算法、决策树算法和逻辑回归算法进行实验,实验结果见表6。 使用相同模型时,软投票的效果优于硬投票,然而其效果仍然不如Stacking 方法。 Voting 方法仅将多个模型的学习效果结合在一起,整体模型只进行了一层训练。 而Stacking 模型整体训练了2 层,比起Voting 方法集成效果更好。
表6 Voting 集成效果Tab. 6 Performance of Voting ensemble model
用Adaboost 方法对随机森林基模型进行集成,并分别实验了基模型数量为1 ~100 不同情况时的模型效果。 Adaboos 集成效果值见表7。
表7 Adaboost 集成效果Tab. 7 Performance of Adaboost ensemble model
Adaboost 能够通过迭代来强化弱分类器的性能,以提升整个集成模型的性能。 Adaboost 集成效果对比曲线如图6 所示。 实验发现,迭代的模型数量越多,Adaboost 集成的分类效果越好,且这种优化的趋势在模型数量刚开始增加时最明显,后续逐渐趋于平缓。 基于决策树的Adaboost 模型五折交叉验证得分最高为0.736;而模型迭代到足够次数时,基于随机森林的Adaboost 模型五折交叉验证得分能够稳定地保持在0.9 以上,最高达到了0.904。Adaboost_RF 模型在多种基模型的多种集成方法尝试中对基模型的提升效果最为显著,取得了最好的分类效果。
图6 Adaboost 集成效果对比Fig. 6 Performance comparison of Adaboost ensemble model
本文通过贝叶斯优化调参方法,训练出了6 种最优参数下的机器学习分类模型,并选取其中效果较好的基模型进行集成实验。 其中,用Adaboost 方法集成随机森林的信贷违约评估模型(RF -Adaboost)取得了最好的分类效果。 该模型明显优于其他机器学习方法,对银行等金融机构的信贷决策提供了具有一定科学依据的参考。 同时,也提出了一种具有泛用性的分类模型训练方法,能够被应用于更多不同的研究领域。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!