Enterprise credit evaluation model based on cost sensitive XGBoost
-
摘要:
我国信用不良的企业数量远小于信用良好的企业数量,样本类别的极端不平衡导致传统的信用评估模型在训练时无法充分学习信用不良企业的特征. 为提高极端梯度提升算法(Extreme Gradient Boosting, XGBoost)在企业信用评估这种不平衡分类问题中的准确率,提出一种基于代价敏感XGBoost的企业信用评估模型. 在XGBoost算法拟合过程中,加入代价敏感损失函数迫使模型更加关注少数类的特征,并引入贝叶斯优化调整模型的重要超参数. 以我国A股市场中小板块企业2016—2020年数据为样本,实证结果表明,基于代价敏感XGBoost的企业信用评估模型能够在保证总体识别精度的情况下提高对信用不良企业的识别准确率.
Abstract:In China, the number of enterprises with bad credit is much smaller than that of enterprises with good credit. The extreme imbalance of sample categories results in the traditional credit evaluation model unable to fully learn the characteristics of bad credit enterprises during training. In order to improve the accuracy of extreme gradient boosting (XGBoost) in unbalanced classification problems such as enterprise credit evaluation, an enterprise credit evaluation model based on cost sensitive XGBoost was proposed. In the process of XGBoost algorithm fitting, the cost sensitive loss function was added to force the model to pay more attention to the characteristics of minority classes, and the bayesian optimization was introduced to adjust the hyperparameters of the model. Taking the datas of small and medium-sized enterprises in China's A-share market from 2016 to 2020 as the sample, the experimental results show that the enterprise credit evaluation model based on cost sensitive XGBoost can improve the identification accuracy of bad credit enterprises while ensuring the overall identification accuracy.
-
在加快推进社会信用体系建设,构建适应高质量发展要求的社会信用体系大环境下,对企业的信用风险进行准确评估显得十分重要. 企业信用评估,一方面是企业的信用“身份证”,可以约束企业的失信行为,督促企业在市场上进行诚信、有序的竞争;另一方面可以作为金融机构了解企业的科学依据,为其投资提供参考.
由于信用不良的企业在受评估企业整体中占少数,构建信用评估所用到的数据会呈现出类别不平衡的特点. 传统的分类算法在处理这种类别不平衡的问题时,往往过分关注信用良好企业所在的多数类样本,忽视信用不良企业所属的少数类样本,极易出现多数类识别率高而少数类识别率低的现象. 但信用不良企业的违约损失对金融机构的影响远大于信用良好企业带来的利息收益,因此提高模型对于少数类的识别准确度,可以极大降低潜在的违约损失. 如何降低样本类别极端不平衡对信用评估模型的影响,是金融机构和研究者重点关注的问题. 尽管机器学习方法在企业信用评估问题中得到广泛应用[1-2],但传统的成本不敏感信用评估模型往往将大部分企业视为信用良好,以最大限度地提高整体预测准确性,从而造成严重的信用违约损失. 为了解决这个问题,许多改进模型被提出:夏利宇等[3]结合信用评估误判成本提出迭代重抽样集成模型;张涛等[4]提出基于样本依赖代价矩阵的企业信用评价模型,减弱类别不平衡对模型的影响;陈启伟等[5]从实际信贷业务的样本类别不平衡和代价敏感问题出发,基于Ext-GBDT集成技术设计了一个类别不平衡信用评分模型;Khemakhem等[6]通过随机过采样(Random Over-Sampling, ROS)和合成少数过采样技术(Synthetic Minority Over-Sampling Technique, SMOTE)解决不平衡数据问题,表明智能统计技术与重采样方法的结合能够提供准确的信用风险评价结果;罗康洋等[7]基于改进的最大相关最小冗余(Max-Relevance and Min-Redundancy, mRMR)算法和代价敏感支持向量机的思想,构建上市公司财务预警模型,经过大量实证分析证明该模型能够有效提高财务预警模型的整体分类性能. 但是这些模型没有考虑损失函数对机器学习算法的影响.
本研究旨在解决面向样本数据类间不平衡的企业信用评估问题,提出一种代价敏感极端梯度提升(Extreme Gradient Boosting, XGBoost)模型. 采用代价敏感的损失函数对XGBoost算法进行改进,使用贝叶斯优化调整算法的重要超参数,并利用我国A 股市场2016—2020年中小板企业的注册资本、注册年限、上市年限以及财务指标数据对改进模型的分类性能进行验证.
1. 理论概述
1.1 XGBoost
XGBoost[8]是Chen和Guestrin在2014年提出的一种Boosting集成树模型,具有训练速度快和预测精度高等优点. XGBoost的目标函数为
L(t)=n∑i=1l(yi,ˆy(t−1)i+ft(xi))+Ω(ft)+c (1) y(t)i=y(t−1)i+ft(xi) (2) 式中:
xi 为输入;ˆyt−1i 为前t−1 颗树对样本的预测值;l(∗) 为损失函数;t 为训练过程的第t 次迭代;Ω(ft) 为正则化的惩罚项,用来限制模型的复杂程度;c 为常数项. 训练树的过程以式(2)所示的加法形式进行拟合.对式(1)进行二阶泰勒展开,即得
L(t)≈n∑i=1[l(yi,ˆyt−1i)+gift(xi)+12hi(ft(xi))2]+Ω(ft) (3) 式中:
gi 和hi 为标量,定义为gi=∂ˆy(t−1)il(yi,ˆyt−1i) (4) hi=∂2ˆy(t−1)il(yi,ˆyt−1i) (5) 由于
l(yi,ˆy(t−1)i) 为前t−1 棵树的预测误差,与第t 次迭代的模型无关,因此可以将其从目标函数中删掉,则有L(t)≈n∑i=1[gift(xi)+12hi(ft(xi))2]+Ω(ft) (6) 对于二分类问题来说,XGBoost算法中常用交叉熵(Cross Entropy, CE)损失函数,公式为
lCE(yi,ˆyi)=−n∑i=1[yilog(ˆyi)+(1−yi)log(1−ˆyi)] (7) 1.2 焦点损失函数
焦点损失函数[9] (Focal Loss, FL)是2017年Lin等基于交叉熵损失函数提出的. FL通过降低易分类的简单负样本在训练中所占的权重来解决类别不平衡对算法带来的影响. 其核心思想为:假设类别为1的样本数量远小于类别为0的样本数量,其中样本
D={(x1,y1),(x2,y2),⋯,(xi,yi),⋯,(xn,yn)} . 为使算法更加关注困难分类样本的特征,FL在单个交叉熵损失函数的基础上引入平衡参数α 控制不平衡的样本在损失函数中的权重;引入聚焦系数γ>0 调整易分类样本和难分类样本的损失权重,公式为lFL−α={−α(1−ˆyi)γlogˆyiyi=1−(1−α)(ˆyγi)log(1−ˆyi)yi=0 (8) 式中:
ˆyi 为第i 个样本预测为1类的概率,且ˆyi=p(yi=1|xi) ;1−ˆyi=p(yi=0|xi) 为第i 个样本预测为0类的概率. 取α∈(0.5,1) 来增加少数类样本的损失权重.1.3 加权交叉熵损失函数
加权交叉熵损失函数[10](Weighted Cross Entropy, WCE)的主要思想是在CE损失函数的基础上,用敏感系数表示样本在损失中的重要性. 加强样本量小的类对损失的贡献程度,减小样本量大的类对损失的贡献,从而达到模型对代价损失敏感的效果. 表达式为
lWCE=−n∑i=1(wyilog(ˆyi)+(1−yi)log(1−ˆyi)) (9) 式中:
w 为敏感系数,需要根据训练数据集类间样本量的差异进行设置;ˆyi∈[0,1] 为模型对样本i 的预测概率.1.4 梯度协调机制损失函数
梯度协调机制损失函数[11-12] (Gradient Harmonizing Mechanism, GHM)由Li等在2019年提出,主要是为了解决损失函数在被迫关注极度难分样本(离群点)时对模型性能的影响,GHM认为难易样本的不平衡可以用梯度范数分布的不均衡表示. 由于离群样本点的梯度模长远大于其他样本的模长,如果迫使模型关注这些离群样本,反而有可能使模型的准确度降低. GHM通过定义梯度密度来衡量一定梯度范围内样本的数量,明确需要衰减的样本类别. 梯度密度为
GD(g)=1με(g)N∑k=1δε(gk,g) (10) 式中:
δε(gk,g) 为梯度模长分布在(g−ε/2,g+ε/2) 区间内的样本个数;με(g) 为区间长度. 将式(7)所示的交叉熵损失与梯度密度的倒数结合就得到GHM函数,公式为lGHM=N∑i=1lCE(pi,p∗i)GD(gi) (11) 1.5 贝叶斯优化
XGBoost等机器学习算法中,重要超参数的设置对其性能的影响较大. 网格搜索是研究中常用的超参数调优方法,但当模型的超参数比较多时,参数值可能的组合数量呈指数增长,网格搜索不但运行时间长,且会受到维度诅咒变得低效.
贝叶斯优化[13](Bayesian Optimization, BO)是一种基于贝叶斯理论的全局优化方法,通过参考历史参数的设置和相应性能的结果,建立不断更新的概率模型,从而找到最佳的参数值组合,因此可以有效缩减训练时间,且不易陷入局部最优值. BO求解的最优化问题为
x∗=argminx∈Xf(x) (12) 式中:
X=x1,x2,⋯,xm 为超参数的组合;f:x→R 为优化目标与超参数之间存在的函数关系. BO的工作流程如图1所示.BO的流程主要包括替代模型和采集函数(Acquisition Function, AC),替代模型是对于当前优化函数的假设,通常情况下会选择灵活性较高且可处理性较强的高斯过程(Gaussian Process, GP)先验;AC用来根据后验模型构建效用函数,确定下一个评估的点.
2. 代价敏感XGBoost模型的建立
针对企业信用评估的样本不平衡分类问题,提出代价敏感XGBoost信用评估模型的建模流程,如图2所示. 主要分为5大步骤:数据预处理、高维数据特征提取、模型超参数优化、代价敏感处理、模型训练和验证.
2.1 数据采集与预处理
研究数据从tushare中采集得到,使用我国A股市场2016—2020年中小板块上市企业的基本信息和财务指标数据作为试验样本,根据当年企业是否被标注ST作为判断企业信用状况的标准. 其中,财务指标数据的来源是企业各年的利润表、资产负债表、现金流量表,共371个财务指标,主要包括营业收入、每股净利润和每股资本公积等;基本信息包括注册资本、注册年限和上市年限.
由于原始数据的缺失值比较多,为确保建模数据的质量,首先对试验数据集进行缺失值处理. 处理方法为:对缺失程度大于40%的指标,将其删除;缺失程度小于40%的指标采用K近邻多重填补法进行填补. 此外,对样本数据进行min-max标准化处理. 由于原始数据中4326个样本数据仅177个为信用不良,数据不平衡比达到1∶24,所以在建模之前对数据进行SMOTE过采样处理. 特征筛选方面,运用mRMR特征选择方法对指标进行筛选,选择mRMR值大于10的指标进行建模.
2.2 数据集划分
为验证代价敏感XGBoost企业信用评估模型的准确性,将数据集划分为两部分:训练集与测试集. 训练集用于超参数优化以及拟合模型,测试集来检验模型的泛化性能. 将原始数据的70%划分为训练集,30%划分为测试集. 本研究中正类表示少数类样本,负类表示多数类样本. 训练数据样本量为3028条,正类样本121条;测试数据1298条,正类样本56条.
2.3 分类评价指标
评价指标在评价分类性能和指导分类器建模方面起着至关重要的作用. 传统的精确度是最常用的衡量标准,然而对于企业信用评估这种类不平衡的分类问题来说,精确度不再是准确的衡量标准. 本研究利用混淆矩阵的相关统计指标,真正例率
TPrate 、真负例率TNrate 、G−means(G值)以及AUC值作为评估模型性能的指标,计算式为TNrate=TNTN+FP (13) TPrate=TPTP+FN (14) G=√TPrate×TNrate (15) FPrate =FPTN+FP (16) 式中:TN、TP、FN、FP分别为真负、真正、假负、假正的样本量.
G−means同时考虑两类样本的召回率,可以综合反应模型的分类性能. 受试者工作特征曲线(Receiver Operating Characteristic Curve, ROC)是以FPrate为横轴、以TPrate为纵轴绘制出来的,该曲线描述了分类器的性能随着分类器阈值变化的过程,ROC曲线越靠近左上角,分类器的分类性能越好. ROC曲线下面积(Area Under Curve, AUC)同时考虑分类器对于正类和负类样本的识别准确性,在样本量不平衡的问题中,仍能够对分类器的性能做出有效评价.
2.4 参数设置与优化
根据经验[14-16]以及试验研究,使用BO对XGBoost调整的超参数及其搜索域空间见表1.
表 1 超参数搜索域空间Table 1. Space of hyperparameter search field序号 参数 含义 域空间 1 max_depth 树最大深度 [1,50] 2 gamma 损失函数最小下降值 [0.001,10] 3 subsample 随机采样比例 [0.4,1.0] 4 min_child_weight 最小叶子节点权重 [4,15] 5 max_delta_step 树权重最大步长 [1,10] 6 n_estimators 弱学习器个数 [2,150] 7 colsample_bytree 随机列数占比 [0.2,1.0] 3. 试验结果分析
为验证代价敏感XGBoost在企业信用评估问题中的适用性和有效性,文中模型在贝叶斯调整XGBoost算法超参数的基础上引入不同的代价敏感损失函数,对其分类预测结果进行比较. 设置贝叶斯优化的交叉验证次数为5;WCE函数中,敏感系数
w=1.75 ;FL函数中,γ=2 ,α=0.25 . 由于SMOTE采样的结果具有一定的随机性,为保证试验结果的有效性,以下试验结果均为10次循环后的平均值,见表2.表 2 试验结果Table 2. Experimental results模型 Bayes−XGB/% Bayes−FL−XGB/% Bayes−WCE−XGB/% Bayes−GHM−XGB/% 训练集 TPrate 98.67 90.90 91.07 91.16 TNrate 96.53 91.55 91.52 91.85 G 97.59 91.23 91.29 91.51 AUC 97.60 91.22 91.40 91.50 测试集 TPrate 75.39 86.96 86.25 87.50 TNrate 91.06 91.13 91.29 91.22 G 82.84 89.01 88.73 89.34 AUC 84.13 89.06 88.75 89.40 通过观察表2中Bayes-XGB的效果可看出,该模型在训练集上的分类准确率十分高,少数类分类准确率
TPrate 高达98.67%,多数类分类准确率TNrate 为96.53%;在测试集中虽然TNrate 有91.06%,但TPrate 仅有75.39%,远达不到现实使用的需求,说明数据的不平衡性对XGBoost性能的影响较大. 当训练数据的不平衡特性比较明显时,XGBoost模型无法充分学习到少数类样本的特征,导致其在测试集的效果较差.将Bayes−FL−XGB、Bayes−WCE−XGB、 Bayes−GHM−XGB和Bayes−XGB的分类效果进行对比. 虽然3种代价敏感XGBoost模型在训练集上的效果略低于Bayes−XGB,但在测试集中,
TPrate 分别提高11.57%、10.86%、12.11%;TNrate 分别提高0.07%、0.23%、0.16;G分别提高6.17%、5.89%、6.50%;AUC分别提高4.93%、4.62%、5.27%. 由此表明,模型中使用代价敏感函数改进XGBoost的代价敏感XGBoost企业信用评估模型,可以使算法在拟合过程中更加关注少数类样本的特征,能够在保证整体分类准确率的前提下,显著提高对于少数类的识别准确率.4. 结 语
为处理企业信用评估中类别样本不平衡的问题,设计一种代价敏感XGBoost模型. 该模型采用贝叶斯优化对XGBoost进行参数调整,并使用焦点损失、加权交叉熵、梯度协调机制损失函数对XGBoost进行改进,平衡两类样本的损失代价. 研究结果表明:1)在使用XGBoost算法解决企业信用评估这种分类问题时,数据样本量的不平衡对模型的分类性能影响较大. 2)代价敏感损失函数的使用可以使模型更加关注少数类样本的特征,从而在确保整体分类准确率的前提下,显著提高少数类的分类准确率. 同时,本研究中还存在不足之处,损失函数中敏感系数的设置还不能够全自动地完成,需要人工调整,未来还需继续进行深入的研究.
-
表 1 超参数搜索域空间
Table 1. Space of hyperparameter search field
序号 参数 含义 域空间 1 max_depth 树最大深度 [1,50] 2 gamma 损失函数最小下降值 [0.001,10] 3 subsample 随机采样比例 [0.4,1.0] 4 min_child_weight 最小叶子节点权重 [4,15] 5 max_delta_step 树权重最大步长 [1,10] 6 n_estimators 弱学习器个数 [2,150] 7 colsample_bytree 随机列数占比 [0.2,1.0] 表 2 试验结果
Table 2. Experimental results
模型 Bayes−XGB/% Bayes−FL−XGB/% Bayes−WCE−XGB/% Bayes−GHM−XGB/% 训练集 TPrate 98.67 90.90 91.07 91.16 TNrate 96.53 91.55 91.52 91.85 G 97.59 91.23 91.29 91.51 AUC 97.60 91.22 91.40 91.50 测试集 TPrate 75.39 86.96 86.25 87.50 TNrate 91.06 91.13 91.29 91.22 G 82.84 89.01 88.73 89.34 AUC 84.13 89.06 88.75 89.40 -
[1] 王名豪, 梁雪春. 基于CPSO-XGboost的个人信用评估[J] . 计算机工程与设计,2019,40(7):1891 − 1895. [2] 刘志惠, 黄志刚, 谢合亮. 大数据风控有效吗?:基于统计评分卡与机器学习模型的对比分析[J] . 统计与信息论坛,2019,34(9):18 − 26. doi: 10.3969/j.issn.1007-3116.2019.09.003 [3] 夏利宇, 何晓群. 基于重抽样法处理不平衡问题的信用评级模型[J] . 管理评论,2020,32(3):75 − 84. [4] 张涛, 汪御寒, 李凯, 等. 基于样本依赖代价矩阵的小微企业信用评估方法[J] . 同济大学学报(自然科学版),2020,48(1):149 − 158. doi: 10.11908/j.issn.0253-374x.19017 [5] 陈启伟, 王伟, 马迪, 等. 基于Ext-GBDT集成的类别不平衡信用评分模型[J] . 计算机应用研究,2018,35(2):421 − 427. doi: 10.3969/j.issn.1001-3695.2018.02.022 [6] KHEMAKHEM S, BEN SAID F, BOUJELBENE Y, et al. Credit risk assessment for unbalanced datasets based on data mining, artificial neural network and support vector machines[J] . Journal of Modelling in Management,2018,13(4):932 − 951. [7] 罗康洋, 王国强. 基于改进的MRMR算法和代价敏感分类的财务预警研究[J] . 统计与信息论坛,2020,35(3):77 − 85. doi: 10.3969/j.issn.1007-3116.2020.03.011 [8] CHEN T, GUESTRIN C. XGBoost: A scalable tree boosting system[C]//Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York: ACM, 2016, 785 − 794. [9] LIN T Y, GOYAL P, GIRSHICK R, et al. Focal loss for dense object detection[J] . IEEE Transactions on Pattern Analysis & Machine Intelligence,2020,42(2):318 − 327. [10] SUN Y, WONG A K C, KAMEL M S. Classification of imbalanced data: A review[J] . International journal of pattern recognition and artificial intelligence,2009,23(4):687 − 719. doi: 10.1142/S0218001409007326 [11] LI B, LIU Y, WANG X. Gradient harmonized single-stage detector[C]//Proceedings of the AAAI Conference on Artificial Intelligence. Honolulu: American Association for Artificial Intelligence, 2019: 8577 − 8584. [12] 肖雨晴, 杨慧敏. 目标检测算法在交通场景中应用综述[J] . 计算机工程与应用,2021,57(6):30 − 41. doi: 10.3778/j.issn.1002-8331.2011-0361 [13] PELIKAN M. Bayesian optimization algorithm [M]. Berlin, Heidelberg, 2005: 31 − 48. [14] 唐红, 王栋, 宋博, 等. 基于非线性赋权XGBoost算法的航班延误分类预测[J] . 系统仿真学报,2021,33(9):2261 − 2269. [15] 史佳琪, 张建华. 基于多模型融合Stacking集成学习方式的负荷预测方法[J] . 中国电机工程学报,2019,39(14):4032 − 4042. [16] 王桂兰, 赵洪山, 米增强. XGBoost算法在风机主轴承故障预测中的应用[J] . 电力自动化设备,2019,39(1):73 − 77, 83. 期刊类型引用(0)
其他类型引用(3)
-