论文部分内容阅读
摘 要: 本文使用UCI上的信用卡违约数据集,使用C5.0算法对其建模,预测客户是否会发生违约行为,并进一步比较了删除冗余变量,引入损失矩阵,以及使用boosting组合模型建模的模型效果。最后发现在C5.0算法的基础上使用boosting组合模型效果是最佳的。
关键词: C5.0;损失矩阵;boosting
引言
预测信用卡用户是否会发生违约行为对于信用卡公司来说是一件是非重要的事情,本文使用C5.0模型,綜合考虑了模型复杂度,模型精确度,模型误判比率等各个方面对信用卡违约数据集进行建模,预测用户是否会发生违约行为,模型效果表现良好。
一、数据描述
数据来源于UCI,是一份对台湾消费者信用卡违约情况的采样。数据集中总共有24个变量,除了变量是否违约是预测目标,其他变量总共可以分为两类。
第一类是个人的基本信息,包括性别;学历水平;婚姻状况;年龄。
第二类是个人的财务状况信息,包括贷款额度;过去消费历史,2005年4月到9月的消费付款情况;2005年4月到9月的账单总额;2005年4月到9月的前期支付总额。
二、模型介绍[1]
C5.0是决策树算法中的一种,属于有指导的学习,它的生长过程本质是对训练样本的反复不断分组过程。
1.C5.0的生长算法
C5.0以信息增益率为标准确定最佳分组变量和分割点,同时考虑了信息增益的大小程度和为获得信息所付出的“代价”。变量的信息增益率越高,使用其作为分组变量越佳。
2.C5.0的剪枝算法
C5.0采用后剪枝方法从叶节点向上逐层剪枝,比较叶节点的加权误差和父节点的误差,如果叶节点大于父节点的误差则可以减掉分支。
三、模型建立
1.不平衡数据处理
统计了一下发生违约的样本有6636个,占总样本的1/4不到。由于信用卡违约预测的重心在于找出容易违约的客户,为了使预测的结果更加精确,本文对原本没有违约的客户进行欠抽样,只抽取50%的样本,对违约的客户进行过抽样,有放回地重复抽取200%的样本。
2.样本集分割
将样本集分割,由于原始样本的数据比较多,故将70%的样本做训练集,30%的样本做测试集。C5.0算法仅是利用统计学置信区间的估计方法在训练集上估计误差,此处分割样本集是为了在测试集上评价模型的精确性。
3. 模型运用
在SPSS Modeler中对训练样本进行训练得到一颗深度为28的树,这棵树非常庞大,模型比较复杂。究其原因,可能是样本集中的变量太多,过多冗余变量导致了树的枝叶庞大。变量重要性排前10的变量分别有:9月/8月/7月/4月的付还情况,9月份的支付总额,5月的付还情况,4月/7月的支付总额,6月份的付还情况,贷款总额。9月份的付还情况最重要,是模型根节点的最佳分组变量,这说明最近一个月的付还情况在信用卡违约预测中是最重要的。性别、教育程度、婚姻状态、年龄这些基本信息都不是重要变量,说明是否违约在这些变量的不同取值上没有显著区别。
从表1中第二列可以看到,原始模型在训练集上的正确率为74.31%,在测试集上的正确率为74.16%,测试集的正确率没有下降;训练集和测试集的召回度和精度的调和均值F1-score也没有差别很大,这说明原始模型的预测效果还是可以的。
由于模型太过复杂不利于解读,进一步的,考虑过滤掉除排前10的重要变量以外的变量进行建模。训练得到了一颗深度为16层的树,相较于未删减变量的树,模型的复杂度大大降低。从表1中第三列可以看到删减变量之后的模型相较于原始模型各评价指标都略微有所降低,训练集的正确率由74.31%降低到72.26%,而测试集的正确率比训练集低了0.38%,如果追求模型的简洁,删除掉冗余变量的模型表现效果还是不错的。
前面已经讲过,预测的更为重要的目的是在挖掘那些违约的情况。所以违约但是误判为不违约的状况比不违约误判为违约的损失要大得多。为了改善这种情况,在删除掉冗余变量的模型中引入损失矩阵,定义损失误判为不损失2单位惩罚,不损失误判为损失1单位惩罚,其他情况都为0。模型的树状图深度为19,相较于第二个模型多了3层,模型复杂度加大。从表1中的第四列可以看到,模型在训练集和测试集上的正确率都大大降低,但是相较于第二个模型,训练集和测试集的F1-score都有所提升。说明在减少误判违约为不违约这块,引入损失矩阵确实得到了改进。
4.组合模型
由于第一个模型在各种指标的评价上都比其他两个模型表现效果要好,所以考虑在第一个模型的基础上引入boosting组合模型。训练的结果和原始模型一样,得到了一颗深度28的树。见表1的第五列,组合模型在训练集及测试集上的正确率分别为79.08%和79.12%,相較于表现最好的原始模型,已经得到了非常高的提升,而且测试集上和训练集上的F1-score都为0.8050,相较于F1-score双高的原始模型,也得到了较大的改进,说明模型的召回率和精度都有所提升。
四、结语
本文在信用卡违约数据集上比较了单独使用C5.0模型、删除冗余变量、引入损失矩阵以及使用boosting组合模型后建模的模型效果。单独考虑模型的正确率和F1-score,组合模型的效果是最佳的,但是模型的复杂度太高,不利于解读;如果综合考虑模型的精简和正确率,那么删除掉冗余变量后的模型更易解读,而且在训练集和测试集上的正确率还是比较可观的;如果即考虑模型的精简又考虑F1-core,那么删除冗余变量之后再引入损失矩阵后的模型效果较佳,但是有一个缺点就是它的正确率不太理想。综合考虑各种因素,在C5.0的基础上,使用boosting组合模型进行建模效果是最佳的。■
参考文献
[1]薛薇,陈欢歌.SPSS Modeler数据挖掘方法及应用[M].电子工业出版社,2014,104—153.
关键词: C5.0;损失矩阵;boosting
引言
预测信用卡用户是否会发生违约行为对于信用卡公司来说是一件是非重要的事情,本文使用C5.0模型,綜合考虑了模型复杂度,模型精确度,模型误判比率等各个方面对信用卡违约数据集进行建模,预测用户是否会发生违约行为,模型效果表现良好。
一、数据描述
数据来源于UCI,是一份对台湾消费者信用卡违约情况的采样。数据集中总共有24个变量,除了变量是否违约是预测目标,其他变量总共可以分为两类。
第一类是个人的基本信息,包括性别;学历水平;婚姻状况;年龄。
第二类是个人的财务状况信息,包括贷款额度;过去消费历史,2005年4月到9月的消费付款情况;2005年4月到9月的账单总额;2005年4月到9月的前期支付总额。
二、模型介绍[1]
C5.0是决策树算法中的一种,属于有指导的学习,它的生长过程本质是对训练样本的反复不断分组过程。
1.C5.0的生长算法
C5.0以信息增益率为标准确定最佳分组变量和分割点,同时考虑了信息增益的大小程度和为获得信息所付出的“代价”。变量的信息增益率越高,使用其作为分组变量越佳。
2.C5.0的剪枝算法
C5.0采用后剪枝方法从叶节点向上逐层剪枝,比较叶节点的加权误差和父节点的误差,如果叶节点大于父节点的误差则可以减掉分支。
三、模型建立
1.不平衡数据处理
统计了一下发生违约的样本有6636个,占总样本的1/4不到。由于信用卡违约预测的重心在于找出容易违约的客户,为了使预测的结果更加精确,本文对原本没有违约的客户进行欠抽样,只抽取50%的样本,对违约的客户进行过抽样,有放回地重复抽取200%的样本。
2.样本集分割
将样本集分割,由于原始样本的数据比较多,故将70%的样本做训练集,30%的样本做测试集。C5.0算法仅是利用统计学置信区间的估计方法在训练集上估计误差,此处分割样本集是为了在测试集上评价模型的精确性。
3. 模型运用
在SPSS Modeler中对训练样本进行训练得到一颗深度为28的树,这棵树非常庞大,模型比较复杂。究其原因,可能是样本集中的变量太多,过多冗余变量导致了树的枝叶庞大。变量重要性排前10的变量分别有:9月/8月/7月/4月的付还情况,9月份的支付总额,5月的付还情况,4月/7月的支付总额,6月份的付还情况,贷款总额。9月份的付还情况最重要,是模型根节点的最佳分组变量,这说明最近一个月的付还情况在信用卡违约预测中是最重要的。性别、教育程度、婚姻状态、年龄这些基本信息都不是重要变量,说明是否违约在这些变量的不同取值上没有显著区别。
从表1中第二列可以看到,原始模型在训练集上的正确率为74.31%,在测试集上的正确率为74.16%,测试集的正确率没有下降;训练集和测试集的召回度和精度的调和均值F1-score也没有差别很大,这说明原始模型的预测效果还是可以的。
由于模型太过复杂不利于解读,进一步的,考虑过滤掉除排前10的重要变量以外的变量进行建模。训练得到了一颗深度为16层的树,相较于未删减变量的树,模型的复杂度大大降低。从表1中第三列可以看到删减变量之后的模型相较于原始模型各评价指标都略微有所降低,训练集的正确率由74.31%降低到72.26%,而测试集的正确率比训练集低了0.38%,如果追求模型的简洁,删除掉冗余变量的模型表现效果还是不错的。
前面已经讲过,预测的更为重要的目的是在挖掘那些违约的情况。所以违约但是误判为不违约的状况比不违约误判为违约的损失要大得多。为了改善这种情况,在删除掉冗余变量的模型中引入损失矩阵,定义损失误判为不损失2单位惩罚,不损失误判为损失1单位惩罚,其他情况都为0。模型的树状图深度为19,相较于第二个模型多了3层,模型复杂度加大。从表1中的第四列可以看到,模型在训练集和测试集上的正确率都大大降低,但是相较于第二个模型,训练集和测试集的F1-score都有所提升。说明在减少误判违约为不违约这块,引入损失矩阵确实得到了改进。
4.组合模型
由于第一个模型在各种指标的评价上都比其他两个模型表现效果要好,所以考虑在第一个模型的基础上引入boosting组合模型。训练的结果和原始模型一样,得到了一颗深度28的树。见表1的第五列,组合模型在训练集及测试集上的正确率分别为79.08%和79.12%,相較于表现最好的原始模型,已经得到了非常高的提升,而且测试集上和训练集上的F1-score都为0.8050,相较于F1-score双高的原始模型,也得到了较大的改进,说明模型的召回率和精度都有所提升。
四、结语
本文在信用卡违约数据集上比较了单独使用C5.0模型、删除冗余变量、引入损失矩阵以及使用boosting组合模型后建模的模型效果。单独考虑模型的正确率和F1-score,组合模型的效果是最佳的,但是模型的复杂度太高,不利于解读;如果综合考虑模型的精简和正确率,那么删除掉冗余变量后的模型更易解读,而且在训练集和测试集上的正确率还是比较可观的;如果即考虑模型的精简又考虑F1-core,那么删除冗余变量之后再引入损失矩阵后的模型效果较佳,但是有一个缺点就是它的正确率不太理想。综合考虑各种因素,在C5.0的基础上,使用boosting组合模型进行建模效果是最佳的。■
参考文献
[1]薛薇,陈欢歌.SPSS Modeler数据挖掘方法及应用[M].电子工业出版社,2014,104—153.