论文部分内容阅读
摘要:催收管理是信贷风险管理工作的最后一道屏障,是防范信貸风险的重要手段,对保障信贷资产安全有着十分重要的作用。催收评分模型是目前国际先进银行提升信用卡催收管理能力的主要依据,可以实现自动化的客户细分,能在较低的成本下保持较好的回收水平。本文通过对债务人基本人口特征、信用历史记录和行为活动等数据进行分析,采用XGBoost建立催收评分模型,实现对客户更为准确的分类,对有早期逾期行为的债务人进行提醒,降低风险并维护客户关系。
关键词:风险管理;催收评分模型;信用评分;XGBoost
1 引言
通过对国内外研究现状进行分析,在贷后催收管理[1]中,当前针对催收信用模型所采用的数据挖掘算法主要以决策树、神经网络、Logistic回归三大类算法为主[2-3]。
2 背景技术
决策树:决策树方法是一种非参数统计方法[4-5],以树的形式表示目标变量与预测变量之间的关系,树中每个节点表示预测变量,每个节点的分叉表示预测变量的不同取值,每个叶子节点代表不同路径对应的预测值[6]。实际应用时,把新数据映射到某一个叶节点,并根据计算平均值的方式得出当前数据属于某一类别的概率值。
图1 决策树示意图
神经网络:神经网络是一种模仿人脑信息加工过程的智能化信息处理技术,具有自组织性、自适应性以及较强的稳健性,在结构上神经网络划分为输入层、输出层和隐含层[7-8]。输入层的每个节点对应一个预测变量,从而全部的预测变量一起组成一个多维特征向量。输出层的节点对应目标变量,可有多个。在信用评分场景里,输出层的物理含义表示违约与否,所以是一个二值离散变量。通过无监督式的参数预训练,结合监督式的参数优化来构建信用风险评价模型。神经网络能够很好地处理那些数据结构不太清楚的情况,预测精度相较于其他方法也比较高。
图2 神经网络示意图 图3 Logistic回归示意图
Logistic回归:作为广义线性判别统计分析技术之一,Logistic回归需要目标变量是分类变量[9-10]。目标变量的物理含义表示违约与否,是一个二值离散变量。运用特征选择的方法,从全部特征变量中选取与当前的目标变量最相关的一些特征变量,并且优化目标函数,得到模型参数。
决策树模型属于判别式分类器,能拟合任意非线性分类函数,但是容易发生过拟合;神经网络模型搭建复杂,不容易对预测结果进行直观解释,另外,网络训练过程中,可能会陷入局部最小值点,导致无法收敛,训练效率不高[11];Logistic回归属于线性分类器,所以需要严格挑选出跟目标变量最相关的特征变量,一旦目标变量与预测变量之间存在非线性关系,就会影响分类的效果,并且logistic回归要求预测变量之间不能存在强相关关系,否则可能会使得预测结果误入歧途。
3 XGBoost原理介绍
XGBoost[12]全名叫(eXtreme Gradient Boosting)极端梯度提升,是一种通用的Tree Boosting集成学习算法[13]。集成学习本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务,使组合后的模型具有更强的泛化能力。
XGBoost的弱学习器使用CART回归树模型,通过多轮迭代,每轮迭代产生一个弱分类器,每个分类器在上一轮分类器的残差基础上进行训练,具体过程如下:首先使用训练集和样本真值y训练一棵树,然后使用这棵树模型预测训练集,得到每个样本的预测值 ,由于预测值 与真值y存在偏差,所以二者相减可以得到“残差”;接下来训练第二棵树,此时不再使用真值,而是使用残差作为拟合值来训练;两棵树训练完成后,可以再次得到每个样本的残差,然后进一步训练第三棵树,以此类推;树的总棵数可以人为指定,也可以监控某些指标(例如验证集上的误差)来停止训练。
4 数据预处理
4.1 数据准备
构建模型的第一步是获得合适的数据。本文建模时所采用的数据集是一家小贷公司的真实信贷审批数据。该数据集包含了客户在向小贷公司提出贷款申请时所提供的个人信息如性别、年龄、身份证信息等基本人口特征,经客户授权后获取的第三方信用历史记录数据,以及客户的贷后行为活动等数据。建模数据集共提取了23.6万个客户信用信息,其中每个客户包含109个属性(预测变量)和1个目标变量label:
好客户是指贷款后可以按时还款的客户,坏客户是指贷款后不会按时还款的违约客户。
4.2 数据清洗
数据清洗的目的是解决数据的质量问题。因为数据建模的成功与否,将很大程度上取决于数据的质量。而现实生活中收集的信用数据一般存在噪声数据、冗余数据、稀疏数据和空缺数据,并且表达形式多样化,不利于进一步的数据挖掘。为提高挖掘结果的精度和有效性,在构建信用评分模型之前,必须要对数据进行清洗。
在实际中数据集最普遍的问题是数据缺失情况严重,处理缺失数据,首先需要分析缺失值产生的原因:
(1)因为客户不愿透露个人信息而未填写,例如:一位客户没有填写他的婚姻状况,这种缺失的信息也包含着数据价值。
因为APP版本等产品迭代,后期的产品中新引入某些特征,这类特征老客户是缺失的,例如:产品更新的一版中加入了“学历”特征,老客户的这个特征是无法获取的。
(2)缺失数据的处理是数据清洗过程中的重要工作,考虑到缺失值隐含的数据价值,如果直接删除会丢失信息,所以可以将缺失数据单独看做一类客户处理或者做衍生变量处理,如对于“职业”缺失的数据,可以做一个变量“职业是否缺失”。
数据清洗的另一种情况是极端值的处理,通常的做法是对离群点做截断处理,或者根据领域专家建议的特定值来代替。
4.3 数据规范化 原始数据的形式可能不利于数据分析,因此需要对数據进行规范化处理。对于离散型数据,如果类别过多需要将某些类别做合并处理。因为类别过多会造成数据过于稀疏,从而影响建模效果。然后将离散变量做哑变量处理,转化成模型可以识别的数据格式,例如对性别做如下处理:
由于XGBoost算法属于树模型,可以不做数据标准化处理。
4.4 特征衍生
在建模过程中需要一些显著性较高的特征来达到提升模型效果的作用,一般会从现有数据中结合业务需求构造出一些特征。如根据原有数据字段通过加减乘除等操作生成新的字段:
(1)单一变量的基础转换,如通过对单一变量进行平方、开根号、log转换或指数转换等。
(2)通过添加时间维度进行衍生,如:近3个月借贷平台个数、手机入网时长、近3个月征信报告查询次数等。
多变量的运算,两个变量相加、相乘或变量间计算一个比率后得到新变量,如:平均借款金额、额度使用率等
5 建立模型
5.1 数据抽样
本文将建模数据集随机的拆分为两部分训练集和验证集。在训练集上拟合模型,获得模型参数,并在验证集上对模型进行校验。如果模型在训练集和验证集上的效果差别大,意味着模型稳定性差或者有过度拟合发生。本文将数据集的70%用做训练集,30%用作验证集。
5.2 特征筛选
特征筛选是从原始特征中找出最有效的特征,这种做法的目的是降低数据冗余,减少模型计算,找出更有意义的特征。XGBoost模型的一个优点是可以直接得到每个特征的重要性得分。一般来说,重要性分数衡量了特征在模型中的价值。
特征重要性是通过对数据集中的每个特征进行计算,并进行排序后得到的。在单个决策树中通过每个特征分裂点改进性能度量的量来计算特征重要性,由节点负责加权和记录次数。也就说一个特征对分裂点改进性能度量越大、权值越大,被越多提升树所选择,特征越重要。性能度量可以是选择分裂节点的Gini纯度,也可以是其他度量函数。最终将一个特征在所有提升树中的结果进行加权求和后做平均,得到重要性得分。一个特征越多的被用来在模型中构建决策树,它的重要性就相对越高。
5.3 建立模型
根据XGBoost的features_importance(特征重要性)筛选出65个特征进行建模,优化目标函数,用网格搜索法调整参数。
6 模型效果评估
6.1 模型评估指标
6.1.1 KS
KS是使用同一评分标尺下,累计好客户百分比与坏客户百分比的最大差距。通常评分越低客户表现越坏,而评分越高客户的表现越好。如果评分区分好坏客户的能力越高,KS就会越高。理论上KS的取值在0-100%之间,常见的评分模型KS的取值范围多在25%-70%之间。
6.1.2 ROC与AUC
ROC曲线就是通过在0-1之间改变用于创建混淆矩阵的阈值,绘制分类准确的违约记录比例与分类错误的正常记录比例。AUC值为ROC曲线所覆盖的区域面积,AUC越大,分类器分类效果越好。
6.1.3 PSI
PSI(Population Stability Index)叫做群体稳定性指标,用于衡量两组样本的评分是否有显著差异。PSI = sum(实际占比-预期占比)*ln(实际占比/预期占比)。通过如下标准来判断评分的稳定性:
6.2 XGBoost模型实际效果评估
在训练集上ROC达到91.97%,KS达到66.39%,说明模型有良好的区分能力,分类效果良好。在验证集上ROC达到91.01%,KS达到64.01%,且ROC和KS在两个数据集上的变化小于5%,说明所开发的催收评分模型有效,不存在过拟合。
6.3 模型稳定评估
XGBoost催收评分模型稳定性结果如下:
由结果可知,PSI=0.0017,小于0.1,模型评分结果稳定,XGBoost催收评分模型很稳健。
6.4 模型效果比较
综合来看,四种模型中XGBoost模型的预测能力和区分度是最好的,并且是较为稳定的。
7 结语
本文采用数据挖掘技术,运用XGBoost算法,经过数据采集、数据清洗、特征衍生、特征筛选后建立催收评分模型。从模型最终效果来看,XGBoost催收评分模型是不错的选择。该模型训练集和验证集的区分能力比较高且差距不大,模型比较稳健。此外,XGBoost模型可解释性比较强,训练效率比较高。在贷后管理中可以应用XGBoost催收评分模型的评分结果对客户进行差异化的催收策略,提高回款率,保障信贷资产安全。
参考文献
[1]吕楠.浅谈信用卡的催收管理[J].财经界(学术版),2008(1).
[2]朱德志,梁世栋,黄亮,etal.催收评分技术及其在个人信贷催收管理中的应用[J].中国信用卡,2010(6):26-30
[3]朱晓明,刘治国.信用评分模型综述[J]. 统计与决策,2007(2):103-105.
[4]CrowdProcess,Inc.Machine Learning in Credit Risk Modeling[Z].NY,USA:CrowdProcess Inc.,2017.
[5]朱毅峰,孙亚南.精炼决策树模型在个人信用评估中的应用[J].统计教育,2008(1):5-7.
[6]吕晓丹,范宏.基于决策树的信用评价模型及实证研究[J].市场周刊(理论研究),2013(8):80-83.
[7]Vincenzo Pacelli,Michele Azzollini. An Artificial Neural Network Approach for Credit Risk Management[J].Journal of Intelligent Learning Systems and Applications,2011,3(3):103-112.
[8]Eliana Angelini,Giacomo di Tollo,Andrea Roli.A Neural Network Approach for Credit Risk Evaluation[J].Kluwer Academic Publishers,2006.
[9]范若愚[等].大数据时代的商业建模[M].上海:上海科学技术文献出版社出版,2013.
[10]苏诚.基于Logistic回归模型的商业银行信用风险评估研究[J].中国城市经济,2011(12):72-72.
[11]申华.基于数据挖掘的个人信用评分模型开发[D].厦门大学,2009.
[12]Chen T,Guestrin C.XGBoost:A Scalable Tree Boosting System[J].2016.
[13]Chen T.Introduction to Boosted Trees[J].2014.
(作者单位:中国人民大学)
关键词:风险管理;催收评分模型;信用评分;XGBoost
1 引言
通过对国内外研究现状进行分析,在贷后催收管理[1]中,当前针对催收信用模型所采用的数据挖掘算法主要以决策树、神经网络、Logistic回归三大类算法为主[2-3]。
2 背景技术
决策树:决策树方法是一种非参数统计方法[4-5],以树的形式表示目标变量与预测变量之间的关系,树中每个节点表示预测变量,每个节点的分叉表示预测变量的不同取值,每个叶子节点代表不同路径对应的预测值[6]。实际应用时,把新数据映射到某一个叶节点,并根据计算平均值的方式得出当前数据属于某一类别的概率值。
图1 决策树示意图
神经网络:神经网络是一种模仿人脑信息加工过程的智能化信息处理技术,具有自组织性、自适应性以及较强的稳健性,在结构上神经网络划分为输入层、输出层和隐含层[7-8]。输入层的每个节点对应一个预测变量,从而全部的预测变量一起组成一个多维特征向量。输出层的节点对应目标变量,可有多个。在信用评分场景里,输出层的物理含义表示违约与否,所以是一个二值离散变量。通过无监督式的参数预训练,结合监督式的参数优化来构建信用风险评价模型。神经网络能够很好地处理那些数据结构不太清楚的情况,预测精度相较于其他方法也比较高。
图2 神经网络示意图 图3 Logistic回归示意图
Logistic回归:作为广义线性判别统计分析技术之一,Logistic回归需要目标变量是分类变量[9-10]。目标变量的物理含义表示违约与否,是一个二值离散变量。运用特征选择的方法,从全部特征变量中选取与当前的目标变量最相关的一些特征变量,并且优化目标函数,得到模型参数。
决策树模型属于判别式分类器,能拟合任意非线性分类函数,但是容易发生过拟合;神经网络模型搭建复杂,不容易对预测结果进行直观解释,另外,网络训练过程中,可能会陷入局部最小值点,导致无法收敛,训练效率不高[11];Logistic回归属于线性分类器,所以需要严格挑选出跟目标变量最相关的特征变量,一旦目标变量与预测变量之间存在非线性关系,就会影响分类的效果,并且logistic回归要求预测变量之间不能存在强相关关系,否则可能会使得预测结果误入歧途。
3 XGBoost原理介绍
XGBoost[12]全名叫(eXtreme Gradient Boosting)极端梯度提升,是一种通用的Tree Boosting集成学习算法[13]。集成学习本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务,使组合后的模型具有更强的泛化能力。
XGBoost的弱学习器使用CART回归树模型,通过多轮迭代,每轮迭代产生一个弱分类器,每个分类器在上一轮分类器的残差基础上进行训练,具体过程如下:首先使用训练集和样本真值y训练一棵树,然后使用这棵树模型预测训练集,得到每个样本的预测值 ,由于预测值 与真值y存在偏差,所以二者相减可以得到“残差”;接下来训练第二棵树,此时不再使用真值,而是使用残差作为拟合值来训练;两棵树训练完成后,可以再次得到每个样本的残差,然后进一步训练第三棵树,以此类推;树的总棵数可以人为指定,也可以监控某些指标(例如验证集上的误差)来停止训练。
4 数据预处理
4.1 数据准备
构建模型的第一步是获得合适的数据。本文建模时所采用的数据集是一家小贷公司的真实信贷审批数据。该数据集包含了客户在向小贷公司提出贷款申请时所提供的个人信息如性别、年龄、身份证信息等基本人口特征,经客户授权后获取的第三方信用历史记录数据,以及客户的贷后行为活动等数据。建模数据集共提取了23.6万个客户信用信息,其中每个客户包含109个属性(预测变量)和1个目标变量label:
好客户是指贷款后可以按时还款的客户,坏客户是指贷款后不会按时还款的违约客户。
4.2 数据清洗
数据清洗的目的是解决数据的质量问题。因为数据建模的成功与否,将很大程度上取决于数据的质量。而现实生活中收集的信用数据一般存在噪声数据、冗余数据、稀疏数据和空缺数据,并且表达形式多样化,不利于进一步的数据挖掘。为提高挖掘结果的精度和有效性,在构建信用评分模型之前,必须要对数据进行清洗。
在实际中数据集最普遍的问题是数据缺失情况严重,处理缺失数据,首先需要分析缺失值产生的原因:
(1)因为客户不愿透露个人信息而未填写,例如:一位客户没有填写他的婚姻状况,这种缺失的信息也包含着数据价值。
因为APP版本等产品迭代,后期的产品中新引入某些特征,这类特征老客户是缺失的,例如:产品更新的一版中加入了“学历”特征,老客户的这个特征是无法获取的。
(2)缺失数据的处理是数据清洗过程中的重要工作,考虑到缺失值隐含的数据价值,如果直接删除会丢失信息,所以可以将缺失数据单独看做一类客户处理或者做衍生变量处理,如对于“职业”缺失的数据,可以做一个变量“职业是否缺失”。
数据清洗的另一种情况是极端值的处理,通常的做法是对离群点做截断处理,或者根据领域专家建议的特定值来代替。
4.3 数据规范化 原始数据的形式可能不利于数据分析,因此需要对数據进行规范化处理。对于离散型数据,如果类别过多需要将某些类别做合并处理。因为类别过多会造成数据过于稀疏,从而影响建模效果。然后将离散变量做哑变量处理,转化成模型可以识别的数据格式,例如对性别做如下处理:
由于XGBoost算法属于树模型,可以不做数据标准化处理。
4.4 特征衍生
在建模过程中需要一些显著性较高的特征来达到提升模型效果的作用,一般会从现有数据中结合业务需求构造出一些特征。如根据原有数据字段通过加减乘除等操作生成新的字段:
(1)单一变量的基础转换,如通过对单一变量进行平方、开根号、log转换或指数转换等。
(2)通过添加时间维度进行衍生,如:近3个月借贷平台个数、手机入网时长、近3个月征信报告查询次数等。
多变量的运算,两个变量相加、相乘或变量间计算一个比率后得到新变量,如:平均借款金额、额度使用率等
5 建立模型
5.1 数据抽样
本文将建模数据集随机的拆分为两部分训练集和验证集。在训练集上拟合模型,获得模型参数,并在验证集上对模型进行校验。如果模型在训练集和验证集上的效果差别大,意味着模型稳定性差或者有过度拟合发生。本文将数据集的70%用做训练集,30%用作验证集。
5.2 特征筛选
特征筛选是从原始特征中找出最有效的特征,这种做法的目的是降低数据冗余,减少模型计算,找出更有意义的特征。XGBoost模型的一个优点是可以直接得到每个特征的重要性得分。一般来说,重要性分数衡量了特征在模型中的价值。
特征重要性是通过对数据集中的每个特征进行计算,并进行排序后得到的。在单个决策树中通过每个特征分裂点改进性能度量的量来计算特征重要性,由节点负责加权和记录次数。也就说一个特征对分裂点改进性能度量越大、权值越大,被越多提升树所选择,特征越重要。性能度量可以是选择分裂节点的Gini纯度,也可以是其他度量函数。最终将一个特征在所有提升树中的结果进行加权求和后做平均,得到重要性得分。一个特征越多的被用来在模型中构建决策树,它的重要性就相对越高。
5.3 建立模型
根据XGBoost的features_importance(特征重要性)筛选出65个特征进行建模,优化目标函数,用网格搜索法调整参数。
6 模型效果评估
6.1 模型评估指标
6.1.1 KS
KS是使用同一评分标尺下,累计好客户百分比与坏客户百分比的最大差距。通常评分越低客户表现越坏,而评分越高客户的表现越好。如果评分区分好坏客户的能力越高,KS就会越高。理论上KS的取值在0-100%之间,常见的评分模型KS的取值范围多在25%-70%之间。
6.1.2 ROC与AUC
ROC曲线就是通过在0-1之间改变用于创建混淆矩阵的阈值,绘制分类准确的违约记录比例与分类错误的正常记录比例。AUC值为ROC曲线所覆盖的区域面积,AUC越大,分类器分类效果越好。
6.1.3 PSI
PSI(Population Stability Index)叫做群体稳定性指标,用于衡量两组样本的评分是否有显著差异。PSI = sum(实际占比-预期占比)*ln(实际占比/预期占比)。通过如下标准来判断评分的稳定性:
6.2 XGBoost模型实际效果评估
在训练集上ROC达到91.97%,KS达到66.39%,说明模型有良好的区分能力,分类效果良好。在验证集上ROC达到91.01%,KS达到64.01%,且ROC和KS在两个数据集上的变化小于5%,说明所开发的催收评分模型有效,不存在过拟合。
6.3 模型稳定评估
XGBoost催收评分模型稳定性结果如下:
由结果可知,PSI=0.0017,小于0.1,模型评分结果稳定,XGBoost催收评分模型很稳健。
6.4 模型效果比较
综合来看,四种模型中XGBoost模型的预测能力和区分度是最好的,并且是较为稳定的。
7 结语
本文采用数据挖掘技术,运用XGBoost算法,经过数据采集、数据清洗、特征衍生、特征筛选后建立催收评分模型。从模型最终效果来看,XGBoost催收评分模型是不错的选择。该模型训练集和验证集的区分能力比较高且差距不大,模型比较稳健。此外,XGBoost模型可解释性比较强,训练效率比较高。在贷后管理中可以应用XGBoost催收评分模型的评分结果对客户进行差异化的催收策略,提高回款率,保障信贷资产安全。
参考文献
[1]吕楠.浅谈信用卡的催收管理[J].财经界(学术版),2008(1).
[2]朱德志,梁世栋,黄亮,etal.催收评分技术及其在个人信贷催收管理中的应用[J].中国信用卡,2010(6):26-30
[3]朱晓明,刘治国.信用评分模型综述[J]. 统计与决策,2007(2):103-105.
[4]CrowdProcess,Inc.Machine Learning in Credit Risk Modeling[Z].NY,USA:CrowdProcess Inc.,2017.
[5]朱毅峰,孙亚南.精炼决策树模型在个人信用评估中的应用[J].统计教育,2008(1):5-7.
[6]吕晓丹,范宏.基于决策树的信用评价模型及实证研究[J].市场周刊(理论研究),2013(8):80-83.
[7]Vincenzo Pacelli,Michele Azzollini. An Artificial Neural Network Approach for Credit Risk Management[J].Journal of Intelligent Learning Systems and Applications,2011,3(3):103-112.
[8]Eliana Angelini,Giacomo di Tollo,Andrea Roli.A Neural Network Approach for Credit Risk Evaluation[J].Kluwer Academic Publishers,2006.
[9]范若愚[等].大数据时代的商业建模[M].上海:上海科学技术文献出版社出版,2013.
[10]苏诚.基于Logistic回归模型的商业银行信用风险评估研究[J].中国城市经济,2011(12):72-72.
[11]申华.基于数据挖掘的个人信用评分模型开发[D].厦门大学,2009.
[12]Chen T,Guestrin C.XGBoost:A Scalable Tree Boosting System[J].2016.
[13]Chen T.Introduction to Boosted Trees[J].2014.
(作者单位:中国人民大学)