信用卡因其安全便捷、利息低等特点被广泛使用于日常生活中。然而这一现象可能会引发诸多问题,其中信用卡的风险管控对于银行等金融机构而言是一项具有挑战性的任务,金融机构需要权衡信用卡业务带来的利益与风险。预测用户信用卡的消费额度、还款时效性、违约可能性等已成为监控信用卡风险的重要内容。
国外对于信用卡违约问题的研究较早,1999年,Brause等[1]将关联规则和神经网络(neural network, NN)融合起来预测信用卡欺诈。国内也有对这方面问题的研究,范巍强等[2]使用反向传播NN模型预测信用卡使用者的违约风险,郭建山等[3]通过改进随机森林(random forest, RF)预测模型提高违约风险预测效果。
用户信用卡违约预测任务包含信用卡消费预测、信用卡还款预测等。本质上来说,用户信用卡违约预测属于分类任务。用户信用卡历史相关的各项数据可以作为数据集特征,如在不同月份的消费金额、还款金额等,经过监督学习或无监督学习的方式可以预测未来一段时期内用户是否会发生违约行为。
在信用卡违约预测中,信用卡数据存在标签获取难度大和数据分布不均衡的问题,使得经典算法的分类效果不佳[4]。Douzas等[5]利用条件生成对抗网络生成少数类样本以平衡正负样本之间的数量;Yi等[6]提出了结合聚类的合成少数类过采样技术(synthetic minority over-sampling technique, SMOTE),并分析不同样本分布的均衡问题。过采样技术的优点是不会导致信息损失,缺点是其复制了原始数据集中的观测值,因此加大了过拟合的可能性。
本文将采用3种SMOTE对数据集进行预处理,随后分别使用RF、NN、梯度提升决策树(gradient boosting decision tree, GBDT)、逻辑回归(logistic regression, LR)、k近邻(k-nearest neighbor, KNN)、极限梯度提升树(eXtreme gradient boosting, XGBoost)和轻量梯度提升机(light gradient boosting machine, LightGBM)模型对初始数据集以及预处理后的数据集进行训练和预测,根据不同模型之间的比对,研究3种SMOTE与各种模型的结合,并分析它们在信用卡违约预测中的表现。
1 数据处理
1.1 数据来源及预处理
本文所采用的数据集来自Kaggle官网,为国外某银行信用卡数据集,该数据集包含从2015年到2017年间信用卡用户的属性特征及其是否违约的相关数据。该数据共有15万条样本,包含10个属性特征及1个标签变量。用户特征有借款人的月收入、未结贷款数量、借款人逾期30~59 d的次数等10个变量,标签变量“SeriousDlqin2yrs”表示2年内是否有超过90 d的严重逾期行为,如果有逾期行为,则取值为1,否则取值为0。
查看该数据集发现有些变量的值存在严重缺失。比如,用户“月收入”变量缺失值较多(缺失比例达20%),为了增强填充后数据的稳健性,采用中位数法填补该缺失值,以确保数据建模的准确性。其中变量“家庭数量”缺失值较少,故采取直接删除的方式去掉该变量含有缺失值的观测值。
1.2 SMOTE
在模型训练时,数据的不平衡会使模型倾向于将待判样本预测为样本数偏多的类别,导致预测误差出现偏向性。不平衡数据的研究当前主要集中在数据预处理、特征选取和算法3个层面,目的是确保分类器在多数类或少数类的情况下都具有较高的分类精度。数据预处理的主要思想是改变原始数据集的分布,增加少数类样本或减少多数类样本,以降低或者消除数据不平衡现象,使非平衡数据集趋于平衡[7]。
SMOTE是由Chawla等[8]提出的一种用于解决分类问题中类别不平衡的采样方法,其通过生成合成的样本来平衡训练数据集中的正负样本数量。SMOTE可使分类器对少数类样本的关注度增加,从而对样本具有更大的泛化空间,改善少数类样本的分类效果,提升算法整体的分类精度。SMOTE作为一种解决数据非平衡问题的采样技术,可以简洁、高效地获取大量少数类样本,故而在金融、数据挖掘、医学等领域得到了广泛运用[9]。
1.2.1 Regular-SMOTE Regular-SMOTE表示对少数类别的样本进行随机采样,具体步骤如下:
(1)对少数类别中的每个样本[X],以欧氏距离为标准计算它到少数类样本集[F]中所有样本的距离,得到其K个近邻。
(2)根据样本不平衡比例设置采样比例以确定采样倍率[P],对于少数类样本中的每个样本[X],从其K个近邻样本中随机选择若干个样本进行随机线性插值。
(3)将该样本与原数据合成,产生新的训练集。
1.2.2 Borderline-SMOTE Borderline-SMOTE是Regular-SMOTE的改进。SMOTE会导致少数类样本被错误分类,并且这些样本位于决策边界的边缘或边界区域,因此Han等[10]提出了Borderline-SMOTE算法,该算法是对位于分类边界的少数类样本进行过采样,加强对分类边界样本的学习。Borderline-SMOTE算法流程如图1所示。
[开始][利用KNN算法对少
数类样本集[F]进行归类][生成人工少数类样本[hij],
[hij=f′i+rij×dij],[rij]为随机数,
若[fij∈(S∪N′)]则[rij∈(0, 0.5)];
若[fij∈B]则[rij]∈(0,1)][噪声样本集
[N]][边界样本集
[B]=[{f′1, f′2, …, f′b}]][安全样本集
[S]][求[B]中每个样本在少数类样本集[F]中的K个最近邻,随机选出[s]个求属性差值[dij],[dij=f′i-fij],[fij]为近邻样本][结束][样本数是否满足?] [是][否]
图1 Borderline-SMOTE算法流程图
Fig. 1 Borderline-SMOTE algorithm
1.2.3 SVM-SMOTE Nguyen等[11]提出了Borderline-SMOTE的替代方案SVM-SMOTE,其使用支持向量机(support vector machine,?SVM)算法而非k近邻算法来识别决策边界上的错误分类样本。除此之外,SVM-SMOTE还尝试选择少数类样本较少的区域,并尝试向类边界外推。SVM-SMOTE算法流程如图2所示。
2 XGBoost算法与模型
XGBoost算法是由Chen等[12]提出的一种高效的集成学习算法,属于加法模型,由多个基学习器构成,每个基学习器为一棵回归树,每棵回归树的输出值即为叶节点的权重。当对一个样本进行预测时,根据内部结点的决策条件进行划分,最终被划分到的叶节点的权重即为该样本的预测输出值。XGBoost因其高预测精度、处理缺失值和稀疏数据的能力、灵活性以及支持并行化操作,在机器学习领域中得到了广泛的应用[13-15]。XGBoost算法基本原理及流程如下:
给定一个具有[N]个样本和[m]个特征的数据集[D],[D={xi,yi}(D=N,xi∈Rm,yi∈R)],其中,[xi]为第[i]个特征值,[yi]为第[i]个目标值,[R]为实数集。假定满足模型迭代终止规则时,XGBoost模型共建立[κ]棵回归树,则第[i]个样本的预测值[yi]的表达式为:
[yi=k=1κfkxi, fk∈F?] (1)
其中:[fk(xi)]为第[i]个样本在第[k]棵回归树的预测值;[F?]为回归树组成的函数空间,[F?=Wq(xi)],[Wq(xi)]表示[q(xi)]对应的叶子节点的权重,[q(xi)]表示特征值[xi]所在的叶子节点。
构造样本集合[Ij]与第[j]个叶子节点之间的映射关系为[Ij={i|q(xi)=j}],其含义为给定一个样本,根据特征找到其对应的叶子节点。
XGBoost对目标函数的优化是其区别于GBDT算法的关键,XGBoost模型第[t]次迭代后的优化目标函数[Lt]为:
[Lt=i=1 nL(yi, yi,t)+k=1tΩfk] (2)
其中:[yi,t]为第[i]个样本在第[t]次迭代后的预测值;[L(yi, yi,t)]为预测值与真实值的损失;[n]表示训练样本的容量,由于测试样本的预留,选择[n≤N];[Ωfk]为建立第[k]棵回归树的复杂度惩罚项,为了防止决策树过拟合,其常用的表示形式为:
[Ωfk=γT+12λj=1TW2j] (3)
其中:[γ]和[λ]为超参数,用来控制惩罚力度;[T]为树结构中的叶子节点数;[Wj]表示第[j]个叶子节点的权重。
XGBoost采用前向分步算法优化目标函数,在第[t]次迭代中,[yi,t]可表示为:
[yi, t=yi, t-1+ft(xi)=yi, t-1+Wq(xi)] (4)
其中:[ft(xi)]表示第[t]次迭代模型的预测值。
XGBoost目标函数可以等价转化为对树结构中各个叶子节点的计算并遍历求和,表示为
[Lt=j=1Ti∈IjLyi,yi,t+k=1t-1Ωfk+Ωft=]
[j=1Ti∈IjLyi, yi, t-1+Wqxi+γT+12λj=1TW2j+C=]
[γT+j=1Ti?IjLyi, yi, t-1+Wj+12λW2j+C]
(5)
其中[C]为常数项。
对式(5)所示的目标函数进行二阶泰勒展开后得到:
[Lyi, yi, t-1+Wj ≈Lyi, yi, t-1+L’yi, yi, t-1Wj+ 12L’’yi, yi, t-1W2j] (6)
令[L’yi, yi, t-1=gi, L’’yi, yi, t-1=hi],最终的目标函数为:
[Lt=γT+j=1Ti?IjgiWj+12hiW2j+12λW2j=]
[ γT+j=1TWji?Ijgi+12W2j(λ+i?Ijhi) ]
(7)
令[i?Ijgi=Gj, i?Ijhi=Hj],当[Wj=-Gj/(λ+Hj)]时,得到的目标函数为最小值,表示为:
[minLt=γT+j=1T-Gj2λ+Hj+12Gj2Hj2λ+Hj=]
[γT-12j=1TGj2λ+Hj] (8)
关于最优特征以及最优划分点的选取,本文采用精确贪心算法,从深度为0的回归树开始,假设进行一次分枝,该节点在划分前的[Gj]和[Hj]是已知的,因此其最优节点值及其对应的损失值也是已知的。在划分节点时,将[Gj]、[Hj]分别划分为左节点[GL、HL]和右节点[GR、HR],从而求出节点值[W?]和分裂前后的损失值[O?f]、[O?b],表示为:
[W?=-GjHj+λ] (9)
[O?f=γ-12G2jHj+λ=γ-12GL+GR2HL+HR+λ] (10)
[O?b=γT-12j=1TGj2λ+Hj=2γ-12GL2λ+HL+GR2λ+HR](11)
根据不同的划分条件所得到的不同节点,其节点值是不同的,特征数[m]较多或样本量[N]较大时还需要采用列采样技术和分桶技术。精确贪心算法通过遍历每个特征下每个可能的切分点取值,计算切分后的增益,选择增益最大的特征及切分点。最优特征划分为
[Lsplit=O?f-O?b=]
[ 12GL2HL+λ+GR2HR+λ-GL+GR2HL+HR+λ-γ]
(12)
另外,本算法终止规则同其他树模型一样可考虑最大信息增益、叶子节点包含的样本数、限制叶子节点个数等实现。
3 结果与讨论
3.1 模型评判指标
分类模型常用的评价指标为预测结果的准确率,对于不平衡样本的机器学习,抽样技术优劣的评价指标为准确率提升度,分类结果偏向多数类。本文所选信用卡用户违约数据中多数类为无逾期行为,这样会出现更多有逾期行为的用户被划分为无逾期行为用户的现象,对银行来说会造成更大的损失。因此本文引入准确率、精确率、F1指数、曲线下面积(area under?curve, AUC)4个指标以评价模型的优劣。
3.2 模型对比及结果分析
首先考虑不使用SMOTE处理数据的情形,选择其他6种模型(RF、GBDT、LR、KNN、LightGBM、NN)与XGBoost模型进行比较。实验结果如表1所示。
然后,分别选择3种SMOTE对数据进行预处理,并使用上述模型进行建模,分析其耦合效果,结果如表2~表4所示。
对比模型预测的整体性能,经SMOTE采样后,数据达到相对均衡,大多数实验效果有了显著提升。RF、XGBoost、LightGBM模型的预测准确率有了大幅度提升,其中提升最大的为XGBoost模型,从0.813 474最高提升到0.877 119,提升近6%。除了LR模型有所下降外,其他模型的精确率都有了极大提升,XGBoost模型的精确率最高,可达0.919 917,提高了近25%。F1指数和AUC值则对于所有模型都具有很大提升。因此,进一步说明了对类别不平衡数据利用采样策略进行数据平衡的重要性。
此外,从不同模型的实验结果可知,XGBoost模型在准确率、精确率、F1指数和AUC值上都取得了最优值,各项指标几乎都优于其他模型。而在3种SMOTE方法中,采用SVM-SMOTE方法的XGBoost模型结果要优于其余两种采样方法,该模型能够作为解决信用卡违约预测问题的优良模型。同时也发现LR、NN模型表现欠佳,说明SMOTE在对数据进行均衡处理时并不是对任何算法都有效。
3.3 对模型与算法的思考
由于SMOTE是随机线性插值,因此通常会存在以下问题:
(1)在取样过程中,k近邻选择存在一定的盲目性,当数据集极度不平衡时,新合成的少数类样本会造成类之间出现重叠,从而影响分类的效果。
(2)在插值过程中,合成的新样本基于所有少数类样本,包括噪声样本,因此容易产生模糊边界、分布边缘化等问题。当少数类样本处于分界线边缘或少数类样本为噪声样本时,合成的新样本也将处于分类边界,进而模糊分类边界。
鉴于SMOTE的上述问题,首先,采样规模必须得到有效控制,可以将采样比例作为超参数并用交叉验证方法得到。其次,宜采用“内插”的方法获取新样本,减少获取“边界”样本数量,甚至人为地过滤掉部分边界样本数据,本文实验结果说明SVM-SMOTE方法更加稳健。再次,由于SMOTE增加了新样本,并且不可避免地产生失真的样本,这样会使训练的模型相对于真实数据产生过拟合,使得在测试集上的预测准确度下降,并且这种准确度的下降程度还可能与采用的模型优化算法密切相关。本文结果显示,对于NN算法,当其隐藏层层数较多时,由于该算法天然具有过拟合的“特质”,而SMOTE又会添加新的样本导致该算法预测精度下降,该结果说明NN算法在本数据集上不宜与SMOTE结合使用。
4 结 论
本文采用Kaggle国外某银行信用卡数据集,为验证SMOTE在处理不平衡数据时的有效性,首先对原数据集用RF、GBDT、LR、KNN、XGBoost、LightGBM、NN等7种模型进行建模分析和预测,为评价模型的优劣引入准确率、精确率、F1指数、AUC值,之后分别使用Regular-SMOTE、Borderline-SMOTE和SVM-SMOTE等3种采样方式对数据集做相对平衡处理,然后再使用上述7种模型进行数据建模分析和预测。结果表明数据经SMOTE采样后达到相对均衡,大部分实验效果均具有显著提升。3种采样方式中SVM-SMOTE的提升最大。而在7种模型中XGBoost模型准确度及精度表现最优,模型具有较强的稳定性,该模型在研究信用卡违约预测领域具有一定可行性。