APP下载

基于RF?SMOTE?XGboost下的银行用户个人信用风险评估模型

2020-08-14张雷王家琪费职友罗帅隋京岐

现代电子技术 2020年16期
关键词:特征提取

张雷 王家琪 费职友 罗帅 隋京岐

摘要: 大数据时代下,用户信用数据中的高维稀疏特征与样本不平衡现象日益显著。为处理高维特征,文中采用随机森林(RF)从Filter和Wrapper角度进行特征提取,并用SMOTE算法对训练集样本做采样处理。模型训练阶段使用粒子群优化算法对XGboost模型做分类精度提高。最后,采用一开源银行数据集提供的数据进行实例验证。结果表明,相较于一般的GBDT模型和网格搜索法,所建立的模型在评估时具有更好的精度与收敛性。

关键词: 信用风险评估; SMOTE算法; 特征提取; 采样处理; XGboost; 实例验证

Abstract: In the era of big data, the imbalanced phenomenon between high?dimensional sparse features and samples in user credit data is increasingly obvious. In order to deal with high?dimensional features, RF (random forest) is used in this paper to extract the features by Filter and Wrapper methodes, and SMOTE algorithm is used to perform sampling processing of the training set samples. In the model training stage, particle swarm optimization algorithm is used to improve the classification accuracy of XGboost model. The data provided by Xiamen International Bank is used for example verification. The results show that, in comparison with the common GBDT model and grid search method, the model established in this paper has better accuracy and convergence in evaluation direction.

Keywords: credit risk assessmen; SMOTE algorithm; feature extraction; sampling processing; XGboost; example verification

0  引  言

作為现代金融体系的核心,商业银行在市场经济、货币政策方面有着不可取代的重要作用,尤其是在我国的经济形势下,商业银行的意义更加突出。

《巴塞尔新资本协议》中写到:“信用风险、市场风险和操作风险是商业银行面临的主要风险,其中信用风险是最核心、最复杂的风险。”信贷业务中客户的违约率上升等对国内商业银行的利润造成威胁,而且,大数据时代的到来导致用户属性特征数量呈现高维稀疏发展趋势,样本数据不平衡且数据量庞大。那么如何处理高维稀疏特征以及样本不平衡问题进而提高评估信用风险的精度已经引起国内学术界、从业人员及监管部门的广泛关注。早期,G B Fernandes使用传统的Logitic回归作为信用风险评估的主流方法,易操作,但是信用评估准确度不足,难以取得良好的预测结果[1]。之后,肖文兵等人将支持向量机用于信用风险评估并在交叉验证中寻找到最优核函数,提高分类准确率,但是支持向量机面对小样本数据拥有良好的处理精度,却难以处理大数据,无法满足现在的需求[2]。闫静提出使用CNN卷积神经网络处理高维稀疏信用数据,但是现在的大多评估数据以列向量的形式存在,不能满足卷积神经网络的数据格式需求[3]。同时ZHU Y等比较了中小型企业信用风险预测的六种方法[4],发现集成学习有着更为理想的准确率,但是机器学习大多基于平衡数据集处理,不平衡数据集对学习器分类存在影响[5?12]。

基于此,本文提出基于集成树模型下的XGboost算法,优先对高维稀疏特征进行特征重要性排序,排除易导致过拟合的无用特征。通过采样方法合成少量样本,平衡数据集,并且通过粒子群算法以XGboost模型的AUC值为目标函数做参数调优。实验结果表明,相较于一般的GBDT算法,模型的评估精度与稳定性显著提高。

1  混合式高维稀疏特征处理

特征工程中有Filter,Wrapper,Embedded也就是过滤式、包裹式、混合式三种方法来进行特征选取。本文正是基于Filter和Wrapper的理念,通过随机森林模型,根据更换特征对评估精度的影响初步判断指标的重要性。在模型的初期对特征过滤处理,以此所生成的特征更具有代表性,通过随机森林(Random Forest,RF)模型经由自主采样法,有放回地从样本集中抽取[m]个样本,抽取[n]次,对这[n]个样本集建立学习器。随机森林是在决策树的基础上,每次随机选择包含[k]个属性的子集,在其中选取一个最优属性用于划分,通过对[k]的控制保证了随机性,一般选择[k=log2 d]([d]为总属性数)。随机森林面对高维数据时可以更快地给出特征值的重要性,具体算法流程如下:

1) 建立随机森林模型,根据[n]组袋外数据(Out of Bag,OOB)对随机森林中的每一个决策树子模型性能测试,记为[errori (i=1,2,…,n)]。

2) 在保证其余决策树特征分布不变的情况下,对[n]组袋外数据的第[i]组特征添加噪声干扰,再次计算每棵树此时的[Errori (i=1,2,…,n)]。

3) 特征的重要性与前后两次添加噪声干扰后的误差变化平均值呈正相关,因此对第[j]个属性,其特征重要性公式如下:

4) 基于重要性对特征排序、选择。

2  模型优化

2.1  过采样平衡样本

在不平衡数据中,往往称呼数量多的样本为负样本,反之则为正样本,而机器学习中的分类算法大多基于平衡样本。为了解决样本不平衡问题,主要是从数据的不同采样方法克服,有欠采样、过采用以及混合采样,而本文所建立的模型正是基于改进的SMOTE过采样方法,通过生成少量样本,解决样本不平衡问题。SMOTE方法通过产生新的少类合成样本,并且控制新的生成样本的数量与分布实现样本平衡,它可以有效地控制因为样本不平衡而导致的分类器过拟合问题,比传统的样本复制法更贴合数据。

下面对SMOTE方法中用到的参数做简单的定义:

定义1:令数据集中的少量样本集合为[xi (i=1,2,…,n)],假设每个样本集有[m]个属性,则对于[xi ]的第[j]个属性即表示为[xij (j=1,2,…,m)],同理,对于负样本集合,令其为[yi (i=1,2,…,N)],且每个属性表示为[yij (j=1,2,…,m)]。

定义2:[NE_Pi ]表示为[xi]的同类K?近邻, [NE_Pi =ne_pikk=1,2,…,K],那么对于其异类K?近邻样本集合可以定义为[NE_Ni =ne_nikk=1,2,…,K],同时定义近邻候选集合为[CANDi=candikk=1,2,…,K],只有当样本属于近邻候选集合时才能参与合成新的样本,[d(i,k)]表示同类K?近邻样本[ne_pik]与[xi]的距离。

至此,SMOTE方法原理可举例说明,对于样本[x1],令[x2∈NE_Pi],则对于新的合成样本[e1],其有[m]个属性[e11,e12,…,e1m],对于任意的[e1j]有公式:

以此,可以对[m]个属性值依次合成,从而产生一个新的少类样本[e1]。重复上述过程,当达到过采样率后即可停止。

2.2  XGboost算法

XGboost(Extreme Gradient boosting)是一种集成树模型,其本身的稀疏感知算法对于处理稀疏数据具有先天性的优势。同时,其目标函数中加入了正则化项,可以有效地避免过拟合。对于分类问题,XGboost不同于随机森林的委员会原则,而是通过利用残差多次迭代拟合最终值,对于精度有显著的提高[13]。

现对XGboost算法的原理进行说明。假设有数据集[D=xi,yi (i=1,2,…,n)],[xi]表示第[i]个样本的属性集,[yi ]表示第[i]个样本所属类别,那么则会有:

式中:[yl]表示模型的预测值;[yi]表示该样本的实际值;[K]表示树的数量;[fk]表示第[k]棵树模型;[T]表示该棵树叶子节点的数量;[w]表示在每棵树叶节点的分数;[λ]表示超参数。XGboost模型的训练过程如下:

式中,[yl(t)]表示第[t]轮的模型预测值,其保留[t-1]轮的模型预测并且在此基础上加入了一个新的函数。因此,第[t]轮的目标函数为:

通过泰勒展开式,取其前三项并且移除最小项,可将目标函数转化为:

2.3  XGboost算法参数优化

数据集本身存在不平衡,因此本文创新性地将模型的AUC值作为优化目标,通过粒子群算法(Particle Swarm Optimization,PSO)寻找到最优值。首先在空间中设计一群仅有速度和位置属性的粒子,速度代表粒子移动的快慢,位置表示为三维向量(学习率rate、树深度depth、最小叶节点权重weight),代表XGboost模型的三个超参数。每个粒子都会在空间中单独地搜寻最优解,并将其标记为个体极值,对整个粒子群做极值比较,找到最优值作为整个粒子群当前的全局最优解,粒子群中的其余粒子根据拥有最优值的粒子的位置和速度对自己进行调整,迭代公式如下:

式中:[xi]表示该粒子当前的位置,且有[xi=xi1,xi2,xi3];[vi]表示第i个粒子的速度;[c1],[c2]表示学习因子,一般设置为2;[Pbesti]表示局部最优值点;[Gbesti]表示全局最优解;[ω]是惯性权重,用于平衡全局搜索能力和局部搜索能力。粒子通过上述的公式对自己的位置和速度实现迭代,逐步向最优点逼近。

2.4  XGboost模型实现流程

本文所建立的RF?SMOTE?XGboost个人信用风险评估模型具体流程可以分为四部分:数据预处理、SMOTE补充数据集、参数优化、模型测试与评估,具体步骤如下:

1) 获取数据,对数据做过归一化处理,对原始数据集中的缺失数据做处理,考虑到异常值在个人信用数据中存在且客观合理,故不对异常值处理。同时考虑到高维稀疏特征的特点,先排除个人化易导致过拟合的特征,然后选择使用RF对特征值重要性进行排序,选取重要性较高的特征,得到数据集[S′]。

2) 对于原始数据集中,按8∶1∶1比例作为训练集、验证集、测试集,对训练集和验证集正负样本的比例做初步了解,并且运用SMOTE对少量样本进行合成,生成新集合[S′]。

3)对于[S′],将其划分为训练集[S′train]与验证集[S′test],多次抽取小样本,分别为[S′train1],[S′train2],…,[S′trainm]。

4) 随机产生N组解,每组解是一个三维的向量,其包含XGboost的三个超参数,即学习率([rate])、树的最大深度([max_depth]),以及最小叶子節点样本权重([min_child_weight]),以XGboost模型的AUC值作为适应度函数[f]。

5) 通过PSO迭代,寻找到最小误差的适应度函数,并且记录下此时的最优参数向量([rate],[max_depth],[min_child_weight])。

6) 将训练好的XGboost模型代入剩余的25%数据做检验,评判此时的AUC值,并且与GBDT的预测精度做对比。

3  实证分析

3.1  实验数据

为了验证本文所建立的RF?SMOTE?XGboost模型在个人信用风险评估方面的精确度与稳定性,本文实验数据采用了一开源银行数据集所提供的个人数据信用基本数据,包括用户个人基本信息以及还款情况。基本情况见表1。

为了提高模型评估精度,避免过拟合,排除id,certId,dist等多项无用特征,对certValidBegin,certValidStop两项相减并且做归一化处理,将数据集按8∶1∶1的比例分为训练集、验证集和检验集。对训练集、验证集做SMOTE过采样处理,依托训练集及训练模型,并且从验证集上随机抽取1 000例,计算模型的AUC值,以此为目标函数,训练参数。

3.2  特征选择

本文所选择的数据集存在高维系数特征,故先删去冗余且极易导致模型过拟合的数据后,通过RF即随机森林模型对模型的特征重要性做评估,如图1所示。根据特征重要性,选择排名在前20的属性,如图2所示。

3.3  模型优化与结果分析

在模型训练过程中,模型参数的选择对于模型评估时的精确度有着决定性作用。使用粒子群算法对三个超参数的调节——学习率[rate]、最大深度[max_depth]以及最小叶节点样本权重[min_child_weight],达到模型优化的功能目的,提高XGboost模型的预测精度。由数据集原本的正负样本比例可得,正负样本比例失衡,而机器学习算法的分类器大多基于平衡数据集。因此,本文先对数据集做SMOTE过采样平衡,见图3。由图3可得,样本比例由0.73%变为50%,并开始模型的训练。

处理好样本平衡后,经由PSO对XGboost模型进行参数调优,一共迭代了1 214次,最终在[rate] =0.05,[max_depth] =4,[min_child_weight] =6处模型的准确率达到最大值,相较于一般的网格搜索法迭代2 300次以上且易陷入局部最优,粒子群算法展现出了更好的全局搜索能力与处理速度,如图4所示。

图5为两种模型的ROC曲线变化图,在ROC空间中,ROC曲线越靠近坐标轴的左上方表示模型分类的效果越精准。ROC曲线与[x]轴的面积称为AUC值,AUC值介于[0,1]之间。AUC值越大,代表模型的性能越高。由图5可得,GBDT模型经过参数调优训练后的AUC值为0.701 9,而XGboost的训练图为0.786 0,提高了12%,与未经过PSO训练XGboost模型的0.677 8相比提高了16%。

为了验证本文所建立的RF?SMOTE?XGboost模型的性能,本文分别以未经过PSO粒子群算法做参数调优下的XGboost模型的性能、未经过SMOTE处理的XGboost模型的性能、未经过特征提取的模型性能以及同种情况下的GBDT模型的性能做对比,见图6~图9。

为了验证模型所做的过采样处理以及特征提取对于模型性能提高的价值,同上所述,分别做其ROC曲线图,未经过SMOTE处理的AUC值为0.688 6,经过对比发现,本文所建立模型的0.786 0,同比提高14%。未经过特征提取下的模型AUC值为0.657 8,经过对比发现,本文所建立模型同比提高19%。

4  结  语

本文提出一种基于RF?SMOTE?XGboost下的银行用户个人信用风险评估方法。通过随机森林在大规模数据分类问题上的精度和鲁棒性评判出来的特征重要性更准确;并且通过SMOTE处理数据分布问题上的正负样本比例的过大差距;同时创新性地以模型的AUC值作为粒子群算法优化的目标函数,以此应对不平衡样本。实验结果表明,相较于未作样本平衡处理、未作特征提取、未经由参数寻优以及同等情况下的GBDT模型,本文所建立的模型具有更好的评估效果,而且与网格搜索法相比,函数收敛时间更短,全局最优搜索能力更强,是一种有效的银行用户个人信用风险评估模型。

参考文献

[1] FERNANDES G B, ARTES R. Spatial dependence in credit risk and its improvement in redit scoring [J]. European journal of operational research, 2016(2): 517?524.

[2] 肖文兵,费奇.基于支持向量机的个人信用评估模型及最优参数选择研究[J].系统工程理论与实践,2006(10):73?79.

[3] 王重仁,韩冬梅.基于卷积神经网络的互联网金融信用风险预测研究[J].微型机与应用,2017,36(24):44?46.

[4] ZHU Y, XIE C, WANG G J, et al. Comparison of individual, ensemble and integrated ensemble machine learning methods to predict Chinas SME credit risk in supply chain finance [J]. Neural computing & applications, 2017, 28(1): 41?50.

[5] 白鹏飞,安琪,NICOLAAS Fransde,等.基于多模型融合的互联网信贷个人信用评估方法[J].华南师范大学学报(自然科学版),2017,49(6):119?123.

[6] 于彤,李海东.基于BP神经网络的客户信用风险评价[J].现代电子技术,2014,37(10):8?11.

[7] 刘定祥,乔少杰,张永清,等.不平衡分类的数据采样方法综述[J].重庆理工大学学报(自然科学),2019,33(7):102?112.

[8] 莫赞,张灿凤,魏伟,等.基于Bagging集成的个人信用风险评估方法研究[J].系统工程,2019,37(1):143?151.

[9] 吴金旺,顾洲一.基于非平衡样本的商业银行客户信用风险评估:以A银行为例[J].金融理论与实践,2018(7):51?57.

[10] 高超,许翰林.基于支持向量机的不均衡文本分类方法[J].现代电子技术,2018,41(15):183?186.

[11] SIRUNYAN A M, TUMAYAN A, ADAM W, et al. An embedding technique to determine ττ backgrounds in proton?proton collision data [J]. Journal of instrumentation, 2019, 14(6): 6032?6038.

[12] YANG Xiong, WU Shusen, L? Shulin, et al. Modification of LPSO structure in Mg?Ni?YAlloy with strontium [J]. Materials science forum, 2019, 941: 869?874.

[13] 王名豪,梁雪春.基于CPSO?XGboost的个人信用评估[J].计算机工程与设计,2019,40(7):1891?1895.

[14] 李众,王海瑞,朱建府,等.基于蜻蜓算法优化支持向量机的滚动轴承故障诊断[J].化工自动化及仪表,2019(11):910?916.

[15] 林子,黃薏辰,张扬,等.基于支持向量机相关性分析的波浪能发电电力负荷预测[J].南昌大学学报(理科版),2019(5):504?510.

猜你喜欢

特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于Daubechies(dbN)的飞行器音频特征提取
Bagging RCSP脑电特征提取算法
一种基于LBP 特征提取和稀疏表示的肝病识别算法
基于DSP的直线特征提取算法
基于改进WLD的纹理特征提取方法
噪声环境下滚动轴承故障特征提取
浅析零件图像的特征提取和识别方法
基于CATIA的橡皮囊成形零件的特征提取
基于MED和循环域解调的多故障特征提取