1. 引言
在互联网金融蓬勃兴起的时代,金融机构能够突破时间和地域的约束,在互联网上为有融资需求的客户提供更快捷的金融服务。通过互联网技术,加快业务处理速度,带给用户更好的服务体验,但同时存在着信用风险和用户欺诈等问题,急需通过信用评分模型提高风险控制水平。利用数据挖掘方法得出的信用行为模式能够更加准确地预测个人未来的信用表现,能够提高操作的效率,降低授信成本,精确估计消费信贷的风险,是金融机构内部评分不可替代的重要工具。本文就是利用现有征信机构提供的数万份个人征信报告数据采用数据挖掘等方法,从个人征信报告数据中提取模型指标,通过训练数据集学习高效的个人信用评估模型,并进行模型评价,最后用建立的模型预测测试数据集中样本的逾期情况。
2. 评价模型指标选择
2.1. 目前个人信用指标体系主要内容
石勇等(2017)指出信用评分系统包括信用报告和信用评价两部分,而个人信用与企业信用同属于私人信用 [1]。许佩(2017)总结得到目前国内外研究中所采用的个人信用指标体系主要包括贷款申请者的个人基本信息、财务状况、贷款特征和信用历史四类指标,其中个人基本信息主要包括客户的年龄、婚姻状况、职业、教育水平、工作城市、是否本地籍等,经验和有关研究表明工作稳定者信用状况较好,离异者、老年人信用状况较差;财务状况主要包括客户的收入水平、收入来源、固定资产的价值、家庭现负债水平等,这些指标会影响客户的还款能力或还款意愿,进而影响个人信用;贷款特征主要包括贷款额度、贷款期限、贷款价值比、收入还贷比、客户与银行的关系等,有学者认为贷款价值比是个人信用的重要影响因素,且两者呈负相关关系,也有学者认为应将客户与银行的关系,如在该银行是否有存款账户、是否为本行工作人员等都应作为个人信用评估的主要指标;信用历史主要包括是否存在违约行为、信用使用年限、信用账户数等,信用历史记录是评判个人信用是否良好的重要依据 [2]。史小康等(2014)利用数据离散化方法设计了一种个人信用指标筛选方法,能与目前卡方检验、Gini指数原则等已有的方法进行互补 [3]。本文将参考上述文章中对个人信用指标内容与选择方法的总结进行模型指标选择。
2.2. 模型指标选择
根据目前个人信用指标体系的主要内容和征信机构提供的个人征信报告数据,并结合史小康、马学俊的个人信用评级模型指标选择方法 [3] 中提取的指标,本文选用了12个模型指标(表1),其中个人住房
Table 1. Personal credit evaluation model indicator selection and interpretation
表1. 个人信用评估模型指标选择及解释
贷款包括个人住房贷款、个人商用房贷款,是否有其他存款指除了个人住房贷款外的其他种类贷款。
3. 数据描述和处理
3.1. 数据预处理
3.1.1. 缺失值处理
从图1中可以看出,12个指标变量中只有是否本地籍、婚姻、是否有公积金3个指标变量基本不含缺失值,是否有个人住房贷款、是否有其他贷款、未销户贷记卡账户数3个指标变量所含缺失值较少,其余指标变量含有较多缺失值,其中收入缺失最多,其次是贷款逾期笔数和贷记卡逾期账户数,且两者的缺失情况存在相关性。
缺失值处理步骤如下:①删除含有缺失值最多的样本,此时是否本地籍、婚姻中已不含缺失值。②直接删除是否有公积金中2个缺失值对应的样本。③是否有个人住房贷款和是否有其他贷款的缺失值具有相关性,两者同时缺失,且缺失数量只占0.097%,所以直接删除缺失值对应的样本。④贷款逾期笔数和贷记卡逾期账户数的缺失值也具有相关性,且通过数据观察分析可知:该两指标缺失很可能是因为征信机构提供的透支或逾期信息汇总数据中没有记录客户的相关信息,所以直接删除缺失值中未逾期客户对应的样本,而对逾期客户的缺失值用逾期客户对应该两指标的均值来各自填充。⑤通过对征信机构提供的未销户贷记卡或未结清贷款信息汇总数据的观察分析得出未结清贷款笔数和未销户贷记卡账户数的缺失很可能是因为申请者目前并没有未结清贷款和未销户贷记卡,所以没有记录在汇总数据中,对该两指标的缺失值用0填充。⑥在对不含缺失值的指标变量进行异常值处理后,再对于工作城市、教育、收入的缺失值依次进行处理,采用的方法为决策树回归预测缺失值,此时所有指标变量都已不含缺失值,且基本保存了所有的逾期客户样本。
3.1.2. 异常值处理
模型所选的分类型变量无异常值,所以此处只对贷款逾期笔数、贷记卡逾期账户数、未结清贷款笔
Figure 1. Schematic diagram of missing model index values
图1. 模型指标数值缺失情况示意图
数、未销户贷记卡账户数4个数值型变量进行异常值处理(该4个指标变量取值虽以整数形式出现,但需通过时间上的计算取得,所以属于连续变量,可以通过箱线图反应异常值情况),其箱线图及异常情况如图2所示。箱线图是根据3σ准则判断异常值,从图中可知该四个指标的异常值较多,若直接将其删除会减少大量样本,所以此处通过分箱操作来减轻异常值的影响,同时还能起到去噪和数据离散化的作用,处理后数据取值情况如附录所示。
3.2. 特征选择
对特征集合进行特征选择的目的是为了寻找并排除与目标变量相关性较差的特征,这些特征对分类的作用不大而且可能会降低分类的精确度,同时特征集合的维度越高,学习难度越大,模型的复杂度越大,越有可能造成过拟合现象。通过特征选择排除不相关特征,减少特征数量,降低维度,既能简化模型,提高模型的泛化能力,减少过拟合,又能从中加深对特征之间关系的认识和理解。
模型指标变量经数据预处理后都已转换为离散的分类变量,所以本文采用卡方检验的方法检验各特征变量与目标变量的相关性,并根据得分对各特征变量的重要性进行排序,结果如图3所示。从图中可以看出,分类作用最大的特征变量是贷记卡逾期账户数,这是因为客户的违约记录是反映个人信用良好情况的最直接凭证,曾经出现过违约的客户,再次违约的可能性很大。贷款逾期笔数也是客户的违约记录,但它的分类作用却较低,这是由于该指标变量取值为0的占75.43%,取值为1的占17.61%,余下取值只占6.96%,取值变化较小,所以分类作用也不大。分类作用较大指标变量还有未结清贷款笔数、未销户贷记卡账户数、工作城市、收入,前两者反映了客户的还款负担,其他未销户贷记卡或未结清贷款会加大申请者的还款压力,进而增强违约的可能性;后两者是反应客户偿还能力的重要指标,经济相对发达地区的工资相对较高,客户有能力按时偿还贷款,违约的可能性也就相对较小。至于是否本地籍、教育、婚姻等指标变量只能间接的反映客户的偿还意愿或偿还能力,其分类作用也小些。
图4刻画的是各指标变量之间的皮尔逊相关系数,颜色越浅,相关性越大;颜色越深,相关性越小;正数代表正相关,负数代表负相关。未结清贷款笔数与是否有其他贷款之间,未销户贷记卡账户数、是
否有个人住房贷款与收入之间,贷款逾期笔数与未销户贷记卡账户数之间的相关性较大,若将相关性较大的两个变量同时放入模型中,会造成信息重叠,出现冗余变量。
综合考虑特征变量与目标变量的相关性以及特征变量之间的独立性,决定删除是否有其他贷款和是否有公积金这两个指标变量,用余下的10指标变量建立模型。
3.3. 非均衡数据集
非均衡数据集是指数据集中各类样本数目并非基本均衡,而是相差很大,数据集中某一类别的样本数可能远远高于其他类别。从图5可以很直观的看出,逾期客户与未逾期客户的样本数相差甚大,逾期样本只占9.25%,本文的数据集是一个非均衡数据集。
Figure 2. Numerical indicator variable box line diagram and abnormal situation
图2. 数值型指标变量箱线图及异常情况
Figure 3. Chi-square test scores and relative importance of each characteristic variable
图3. 各特征变量卡方检验得分及相对重要性
Figure 4. Correlation heat map of each characteristic variable
图4. 各特征变量相关性热度图
非均衡数据集不再满足最小化错误率、数据集各类别样本量大致相同、错误代价相同等分类目标和分类假设,若直接对非均衡数据集使用传统的分类算法进行分类,这些分类器分类时往往偏向多数类,从而导致少数类识别正确率极低,分类器整体性能较差。
非均衡分类问题的解决方法大致分两个方向:一是重构数据集,通过重取样改变数据的原始分布,减少数据集的不均衡程度,主要包括过取样和欠取样;二是改进分类算法,通过对不同类样本设置不同的权值、调节各类样本之间的代价函数、调整分类边界等措施提高分类器的性能。由于本文的建模数据较少,所以先是采用SMOTE算法对数据进行过采样以减少数据集的不均衡程度同时增加了样本量,再利用AdaBoost提升算法将多个弱分类器组合成强分类器,从而改善分类性能 [4]。SMOTE算法会从每个少数类样本的最近邻中随机挑选一个样本,然后在两个样本之间的连线上随机挑选一点作为新和成的少数类样本,并将这些新合成的少数类样本点合并到原来的数据集中,从而得到相对均衡的新数据集,但
Figure 5. Loan status map (−1 means not overdue, 1 means overdue)
图5. 贷款状态分布图(−1代表未逾期,1代表逾期)
SMOTE算法改变了样本的原始分布。AdaBoost提升算法通过每次增加错误分类的样本权值,减少正确分类的样本权值对数据集的分布迭代加权,在一定程度上减弱了SMOTE算法改变样本原始分布带来的负面影响。
4. 模型研究
4.1. 模型建立
提升方法是从弱学习算法出发,通过改变训练数据的概率分布,学习多个弱分类器,然后将这些弱分类器组合成一个强分类器的统计学习方法。AdaBoost算法就是其中一种具有代表性的提升算法,它通过提高被错误分类的样本的权值和降低被正确分类的样本权值的方法来改变训练数据的概率分布,采用加权多数表决的方法组合弱分类器,算法的具体过程如下所示:
4.2. 模型求解和检验
4.2.1. 弱分类算法(构建最佳单层决策树)
输入:训练数据集
,其中
。
输出:最佳单层决策树。
1) 训练数据集中的每一个特征
的分类阈值
,
其中
,
,步长
。
2) 根据每一个特征
的分类阈值v建立单层决策树,该弱分类器由
或
产生。
3) 在构建的所有单层决策树中找出错误率最低的决策树为最佳单层决策树。
4.2.2. AdaBoost算法
输入:训练数据集T和最佳单层决策树分类器。
输出:最终分类器
。
1) 初始化训练数据集的权值分布:
,其中
。
2) 对
(M为AdaBoost的迭代次数):
1、使用权值分布为
的数据集进行弱学习,得到基本分类器
和相应的分类误差率
,分类误差率的表达式为:
。
2、计算
的系数
。
3、利用
更数据集的权值分布,其中被正确分类的样本权重更改为
,被错误分类的样本权重更改为
,规范化因子
。
4.2.3. 模型求解
利用python3.0编程从训练数据集中学习上述模型,模型运行结果如表2所示。本文目标变量的取值情况是正例代表逾期,反例代表未逾期,所以在不考虑分类代价的情况下,模型分类的精确度、回召率、F值都能较好的衡量对少数类样本(逾期客户)预测的准确性和分类器的性能。从表中可以看出,模型的精确率(Precision)、回召率(Recall)、F值、AUC值相差不大,且都随着分类器数目的增加而提高,但提高速度逐渐下降,最终趋向于一个稳定值。当分类器数目达到500时,模型的精确度、回召率、F值就已基本稳定在79%左右,分类器的平均性能达到87.30%;当分类器数目达到时2000时,模型的精确度、回召率、F值就已基本接近80%,分类器的平均性能达到88.01%。
4.3. 模型结果分析
根据前文得到的模型求解和检验情况,此处具体绘制了由分类器数目为的500和2000的AdaBoost模型得到的训练结果的ROC曲线图和混淆矩阵(图6)。从ROC曲线图可以看出,真实预测曲线远离随机猜测曲线而逼近左上角,真实预测曲线下方面积大,说明模型的分类器性能高;从混淆矩阵中可以看出,随着分类器个数的增多,未逾期客户分类正确率变化不大,已基本稳定在77.5%左右,而逾期客户分类正确率则进一步提高,由80.85%提高到了82.15%,但即使将分类器个数提升到6060,逾期客户分类正确率只有82.66%,提升幅度不大,而且分类器数目越多,程序运行时间越长,效率越低。分类时,将逾期客户错分为未逾期客户的损失代价要比将未逾期客户错分为逾期客户的损失代价大得多,逾期客户分类正确率较高的模型损失代价相对较小,所以应尽量选择逾期客户分类正确率较高的模型。综合考虑分类器性能、程序运行时间以及损失代价,本文选用分类器数目为2000的AdaBoost模型预测测试集的逾期情况(表3)。
在对测试集进行预测之前,同样需要对测试集数据的缺失值、异常值进行预处理和特征选择,其处理方法和训练集的处理方法大致相同,不同点在于对测试集中贷款逾期笔数指标变量和贷记卡逾期账户数指标变量的缺失值是直接删除而不是利用均值填充;不对测试集数据进行过采样。处理好数据后用分类器数目为2000的AdaBoost模型进行预测,预测结果中逾期客户占测试样本的10.14%。
Figure 6. The number of model classifiers is 500 and 2000 ROC plots
图6. 模型分类器数目分别为500和2000的ROC曲线图
5. 结论和建议
5.1. 结论
本文选用了12个初始指标变量,从个人基本信息、财务状况、贷款特征和信用历史4个方面刻画客户的个人信用情况,学习建立个人信用评估模型,预测客户贷款逾期情况。在数据描述和处理过程中发现,贷记卡逾期账户数、未结清贷款笔数、未销户贷记卡账户数、工作城市、收入等直接反映客户信用历史、还款压力和还款能力的指标变量的分类作用较大,而是否本地籍、教育、婚姻等间接反映客户的偿还意愿或偿还能力,其分类作用要小些,是否有公积金指标变量在分类中几乎不起作用,所以直接反映客户信用历史、还款压力和还款能力的指标变量分类作用较大。
建立的基于AdaBoost非均衡分类个人信用评估模型在分类器数目为500时,模型的精确度、回召率、F值就已基本稳定在79%左右,分类器的平均性能达到87.30%;当分类器数目达到时2000时,模型的精确度、回召率、F值就已基本接近80%,分类器的平均性能达到88.01%,之后基本趋于稳定。采用数据挖掘方法得出的信用行为模式能够更加准确地预测个人未来的信用表现,对于企业有着重要的意义。
5.2. 建议
1) 模型指标选取需有理有据,减少变量冗余
征信机构提供的原始数据包含的变量数接近百个,建模之前应提前了解各指标含义,参考相关研究成果,选取具有代表和有价值的指标,删除无价值和重复指标。初步选好指标后,还需结合数据集自身特点,综合考察各指标的重要性及各指标之间的独立性,留下重要指标,删除重要性低和信息重叠严重的指标。
2) 非均衡数据集缺失值处理时应尽量避免删除少数类样本
用于预测客户逾期情况的个人信用评估模型的建模数据大都是非均衡数据集,训练集中逾期客户的数量很少,这部分信息很是珍贵,所以在进行缺失值处理时应尽量避免删除存在缺失的逾期客户样本,而应通过归纳总结或有关算法对其缺失值进行填充。
3) 选用逾期客户分类正确率较高的模型
对客户逾期情况进行分类的分类代价是不一样的,将逾期客户错分为未逾期客户的代价要比将未逾期客户错分为逾期客户的代价大得多,后者只是损失了利息收入,而前者损失的却是全部或部分本金,所以在评价预测客户逾期情况的个人信用评估模型时,相比模型的错误率,更关注模型的分类精度以及逾期客户分类正确率,所以应选用回召率、F值、AUC值等反映逾期客户分类正确率的指标作为模型的评价指标,选用逾期客户分类正确率较高的模型预测测试集的逾期情况。
致谢
感谢征信机构为我们提供的数万份个人征信报告数据,感谢导师对在数据挖掘理论上的指导,感谢同学在技术上对我提供帮助,感谢参考文献的作者,他们的研究思路给予了我很大的启迪。
附录:数值型指标变量异常值处理后取值情况