APP下载

基于非平衡数据的LDA-BPNN信用评分模型

2023-03-29王艳丽孙士保贾少勇

计算机仿真 2023年2期
关键词:信用准确率分类

王 静,王艳丽,孙士保*,贾少勇

(1. 河南科技大学信息工程学院,河南 洛阳 471023;2. 河南科技大学软件学院,河南 洛阳 471023)

1 引言

随着我国经济的飞速发展以及消费观念的改变,信贷业务正在逐渐扩大,银行决定是否向贷款人发放贷款在信贷行业中备受关注。不良贷款的出现增加了银行的信用风险问题,因此,构建有效的信用评分模型在信贷行业中被人们越来越关注和重视。

信用评分实质上是将总体按照不同的特征分配到“良好信用”组或“不良信用”组,从而对贷款的信用风险进行评价。通过构建信用评分模型,提高评估绩效的同时减轻风险的灵活性。

传统的信用评分模型是众多学者基于统计学和机器学习法等方面来构建,此方法主要有线性判别分析(Linear discriminant analysis,LDA)[1]、Logistic回归[2]等。典型的信用评分模型简单且可解释强,但因预测准确率偏低,应用范围相对较少。随着计算技术和优化理论的发展,信用评分方法也逐渐智能化,其中较为常见的信用评分方法有决策树(Decision Tree,DT)[3]、神经网络(ANN)[4]、支持向量机(Support Vector Machine,SVM)[5]等,鉴于以上常见方法在建立信用评分时模型简单易理解,神经网络和集成学习模型预测准确率较高。在处理二分类问题时模型有较好效果,但可解释性相比于传统的信用评分方法较弱。

信用评分模型若运用到现实生活中,则需要考虑一些不可忽视的问题。如在前期筛选数据时出现“好”客户数据远远多于“坏”客户数据,从而出现数据不平衡现象。目前,处理非平衡数据问题从分类算法和数据两个层面:数据层面常基于采样技术,分类算法层面常基于代价敏感学习。在信贷业务中,代价敏感学习实现修正分类面相对较难,从而提出数据层面的采样方法。采用此方法解决实际问题中出现的数据分布不平衡问题[6]。早期有学者使用随机欠采样对数据进行预处理,但少数类样本易丢失。Blake等[7]提出Balance Cascade算法,此算法易过拟合。Chawla等[8]提出一种新的过采样方法SMOTE(synthetic minority over-sampling technique),此方法易产生混叠现象造成分类效果不佳。Han等[9]基于SMOTE算法提出Borderline-SMOTE算法,在边缘区域进行插值,使得新样本更加有效且分类效果良好。同时有众多学者对评分模型的预测准确度方面进行研究,徐海洋等[10]改进线性判别分析构建多目标信用评分模型,此方法能有效地提升分类准确率,但仅从统计方法进行探讨具有一定的局限性。陈煜等[11]引入随机代价敏感向量的方式,增强随机森林分类器的差异性,但分类效果不佳。Han Lu[12]将人工智能和logistic回归融合构建信用评分模型,表明组合模型相较于单一模型精度更高。

基于现有研究,构建信用评分模型将基于过采样方法处理非平衡数据,同时考虑可解释性和预测准确率在信用评分模型中所占的比重。因此,本文提出结合Borderline-SMOTE的方法对不平衡分布的数据进行预处理。LDA模型引进显著的预测结果作为BP神经网络模型的输入变量的方法构建信用评分模型。此外,通过多个数据集与多种机器学习算法进行对比,选取适当的评价指标论证模型的可行性和有效性。

2 相关理论

2.1 线性判别分析

LDA最早由Fisher提出解决二分类问题的fisher判别分析,LDA是一种非常有效的可监督的降维技术。当前该项技术在人脸识别等方面已广泛存在[13]。线性判别分析有较好的预测变量的某些属性,能够准确地寻找到最佳的线性组合,以最佳精度将研究对象分为两个或两个群体以上。因此,本文将基于LDA模型在信用评分问题中预测输出变量。

(1)

(2)

zi=WTxi

(3)

2.2 BP神经网络

20世纪80年代,BP神经网络是Rumelhart与McCelland为首的研究小组所提出[14]。BPNN则是按照误差逆转传播法训练的神经网络,其主要思想是学习过程中信号的正向传播和误差的反向传播方式的组合。BPNN拓扑图如图1所示。

图1 BPNN拓扑结构

BPNN本质上是一种基于梯度最陡下降训练算法的网络,是迄今为止最常用的范式。设D={(x1,y1),(x2,y2),…,(xm,ym)},xi∈Rd,yi∈Rl为训练集,l输入层节点数,h隐含层节点数,o输出层节点数,输入层至隐含层的权重由ωij表示,隐含层至输出层的权重由ωjk表示,输入层至隐含层偏置由aj表示,隐含层至输出层偏置由bk表示,学习率由η表示,g(x)取Sig函数

(4)

并进行隐含层的输出Hj

(5)

和输出层的输出Ok

(6)

根据(6)公式计算误差E

(7)

其中Yk为期望输出,记Yk-Ok=ek,则E也可以表示

(8)

以上公式中,i=1…l,j=1…l,k=1…o。

误差反向传播过程中,使得误差函数最小化,借用梯度下降法进行隐含层至输出层的更新,输入层至隐含层的权值表达为

(9)

以及隐含层至输出层的更新,输入层至隐含层的偏置表达为

(10)

3 基于LDA-BPNN的信用评分模型

3.1 Borderline-SMOTE过采样

以往研究信用评分模型是基于数据平衡所构建,忽略非平衡数据对信用评分模型的影响,使得所构建模型的预测结果偏向于多类。在实际问题中,考虑过多的是少数类样本,并希望可以有效预测少数类,达到特异预警的效果。

令选取kaggle开源数据集,以及UCI公开的德国数据集和澳大利亚数据集。数据集显示,三种开源数据集均出现非平衡分布,正负样本比例分别为1:14;1:3;1:5,如图2至图4所示。

图2 kaggle数据集正负样本分布

图3 德国数据集正负样本分布

图4 澳大利亚数据集正负样本分布

本文选用Borderline-SMOTE算法,其算法是基于SMOTE方法改进的自适应合成抽样法。SMOTE方法在产生新样本时缺乏对近邻样本分布的考虑,采用线性插值处理操作,使得样本重复率大大增加。为解决此问题,本文基于Borderline-SMOTE算法对少数类边界过采样合成新样本,同时考虑少数类样本周围多数类样本分布情况。相比于SMOTE算法,Borderline-SMOTE算法合成的新样本可将少数类样本合理分布,对分类器的影响也相对较小。算法具体操作步骤如下:

1)识别少数类样本L:

①每个pi⊂Smin确定最优的邻近样本集合,称该数据集为Si:m-NN,且Si:m-NN⊂S。

②判断多数类样本中与pi邻近样本集的数目,表达为:|Si:m-NN∩Smaj|。

2)少数类样本L按k个最近邻分类处理:

3)令边界样本集B={l1′,l2′,…,lb′},同时进行B集合内每个样本l1′的计算,i=1,2,…,b是在少量样本L中的k′个最近邻lij。

4)随机选取s(1

5)计算全局特征差值dij=li′-lij,j=1,2,…,s的度量。

6)乘以随机数rij,rij(0,1),若lij∈N′∪s,则rij(0,0.5)。

7)生成人工少数类样本hij:

hij=li′+rij*dij,j=1,2,…,s

(11)

8)重复上述步骤3到步骤7操作,若人工少量样本个数符合需求,则该样本集得以均衡。

鉴于以上信息,基于均值插补方法处理缺失值,使得月收入变量数据作为定距型,选用该变量的均值进行填补。与此同时,数据中缺失相对较少,选择直接删除即可。其次,箱线图用以判断异常值

xi>Q3+k(IQR)∨xi

(12)

IQR=Q3-Q1,k≥0

(13)

进行各个特征的异常值剔除。之后采用Borderline-SMOTE方法解决数据非平衡分布。

3.2 LDA-Borderline-SMOTE-BPNN模型

基于数据平衡分布,选用LDA模型,将预测较好的输出变量作为BPNN模型的输入变量,输出预测结果。采用LDA-BPNN构建信用评分模型,图5为该方法的结构框架图。

图5 结构框架图

LDA-Borderline-SMOTE-BPNN信用评分模型构建具体方法:Borderline-SMOTE算法处理非平衡数据分布,其后选用LDA模型将各个数据集预测较好的输出变量转变为BP神经网络的输入变量,确定初始权值并进行网络初始化,计算各层的实际期望值和网络样本输出值之间误差,对客户进行信用分类。算法具体步骤如下所示。

该方法的基本步骤

Iuput:信用数据集。

Output:模型评价指标。

Step1:对信用数据进行缺失值和异常值处理;

Step2:划分训练集和测试集;

Step3:采用Borderline-SMOTE算法进行数据不平衡处理;

Step4:基于以上步骤,采用LDA模型预测较好的输出变量,作为BPNN模型的输入变量,构建LDA-Borderline-SMOTE-BPNN信用评分模型,在训练集上训练;

Step5:在测试集上评估模型。

4 实验结果与分析

4.1 评价指标

实验配置环境在Window10 64位操作系统上执行。对此三类数据集分别选取70%为训练集,其30%为测试集,数据的预处理则使用Borderline-SMOTE方法。实验选用Python代码实现数据平衡分布,初始数据集正负样本比例1:14、1:2、1:5,经缺失值和异常值处理正负样本比例为1:7、1:2、1:5,基于Borderline-SMOTE方法进行数据预处理,正负样本比例均为1:1。

信用评分模型的构建实质是一种二分类问题,因此,选取查准率(Pre)、召回率(recall)、准确率(Acc)作为评价机制,其中正样本为良好信用者,负样本为不良信用者。查准率、召回率、准确率的定义分别如下所示

(14)

(15)

(16)

以上式子中各个值的含义如表1信用评分模型的混淆矩阵所示。

表1 信用评分模型的混淆矩阵

4.2 平衡前后对比

信用评分模型在实际的运用,尤为重要的是预测准确能力。因此,本实验将采用pr曲线判断数据平衡前后的预测准确能力。如图6、图7、图8所示。

图6 kaggle数据集平衡前后pr曲线图

图7 澳大利亚数据集平衡前后pr曲线

图8 德国数据集平衡前后pr曲线

针对不同数据集平衡前后构建的三个模型进行对比分析:以召回率为基准,kaggle数据集中当recall=0.4时,平衡前三个模型的Precision分别为0.02,0.16,0.6,平衡后三个模型的Precision分别为0.03,0.17,0.65;澳大利亚数据集中当recall=0.7时,平衡前三个模型的Precision分别为0.84,0.53,0.86,而平衡后三个模型的Precision分别为0.87,0.59,0.89;德国数据集中当recall=0.925时,平衡前三个模型的Precision分别为0.87,0.875,0.88,而平衡后三个模型的Precision分别为0.88,0.875,0.89。

鉴于以上分析和pr曲线图的呈现,平衡后三种模型的查准率都略优于平衡前三种模型。因此,基于过采样技术方法预测能力相对较好。根据pr曲线图从可解释性方面而言,平衡后LDA-Borderline-BPNN的模型具较强的可解释性。

4.3 分类算法对比

验证非平衡分布的LDA-BPNN模型的有效性,本实验采用交叉验证方法对样本进行处理,为避免实验中出现的偶然性,进行10次独立实验,将10次的实验平均值作为数据,进一步测试本实验的预测效果。各个算法模型检验对应的ROC曲线由图9至图11所示。

图9 kaggle数据集ROC曲线图

图10 澳大利亚数据集ROC曲线图

图11 德国数据集ROC曲线图

根据ROC曲线得出各个数据集模型的AUC值,从表2中可以看出,采用LDA - Borderline - SMOTE - BPNN模型分类效果在多个模型中预测准确率是相对较高,根据多个模型ROC曲线和AUC值的对比表明分类效果的有效性。

表2 AUC实验结果

信用评分问题中,为评估模型整体的信用评分能力,需考虑误分类成本问题。在实际问题中,第一类错误的成本虽低于第二类错误的成本,但均会给银行带来巨大损失。因此良好的信用评分模型的建立则需考虑第一类错误和第二类错误。表3至表5总结了6种模型的第一类和第二类的误差。

表3 kaggle数据集第一类和第二类误差 (%)

表4 澳大利亚数据集第一类和第二类误差(%)

表5 德国数据集第一类和第二类误差(%)

由表可知,LDA-BPNN模型在三种数据集的第一类错误和第二类错误的误差均相对较低。因此,LDA-BPNN模型能够有效的减少第一类错误和第二类错误引发的额外损失,验证了模型的有效性。

4.4 实验结果

根据表6至表8实验结果得出LDA - Borderline - SMOTE-BPNN模型拥有最高的准确率、查准率和召回率。准确度数据显示,提出的算法(LDA - Borderline - SMOTE - BPNN)在三组实验中分别占据75.49%、87.00%和89.33%,远高于单一模型BPNN、KNN以及LG等其它算法的准确度;查准率和召回率数据显示,三个数据集结果均表明LDA - Borderline - SMOTE - BPNN模型相对稳定。

表6 kaggle数据集结果 (%)

表7 澳大利亚数据集结果 (%)

表8 德国数据集结果(%)

5 结论

本文提出基于LDA - Borderline - SMOTE - BPNN的信用评分模型,通过采用Borderline - SMOTE算法对数据预处理达到数据平衡分布,提高分类效果,实际问题中也可得到应用。以此为基础,采用LDA模型输出预测变量作为BPNN的输入变量,输出预测准确率(AUC)。实验结果表明,融合后的模型不仅有效的提高预测准确率和增强可解释性,而且还有较低的误分类错误。在未来工作中,将其它人工智能技术与BP神经网络相结合,进一步对BP神经网络内部做提升,实现基于动态自适应学习速率,进而提升信用评分的分类精度。

猜你喜欢

信用准确率分类
分类算一算
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
为食品安全加把“信用锁”
信用收缩是否结束
分类讨论求坐标
高速公路车牌识别标识站准确率验证法
数据分析中的分类讨论
教你一招:数的分类