SAS分类决策树预测贷款申请评分剪枝和结果可视化

分类树的一个常见用途是预测抵押贷款申请人是否会拖欠贷款。

由Kaizong Ye,Coin Ge撰写

数据包含对 5,960 名抵押贷款申请人的观察结果。


一个名为的变量 Bad 表示申请人在获得贷款批准后是还清贷款还是拖欠贷款。

此示例构建一个树模型,该模型用于对数据进行评分,并可用于对有关新申请人的数据进行评分。

数据变量

表 :数据表中的变量

变量类型等级描述
Bad因变量二进制1 = 申请人拖欠贷款或严重拖欠贷款
0 = 申请人还清贷款
CLAge预测变量区间最长信用额度的月龄
CLNo预测变量区间信用额度数量
DebtInc预测变量区间债务收入比
Delinq预测变量区间拖欠信用额度的数量
Derog预测变量区间重大贬损报道数量
Job预测变量标称职业类别
Loan预测变量区间申请贷款金额
MortDue预测变量区间抵押贷款到期金额
nInq预测变量区间近期信用查询次数
Reason预测变量二进制DebtCon = 债务合并
HomeImp = 家庭改善
Value预测变量区间财产价值
YoJ预测变量区间目前工作年限

加载数据

树模型的因变量是 Bad,一个有两个值的分类变量(0 代表贷款支付,1 代表违约)。其他变量是模型的预测变量。以下语句将数据加载到会话中并显示数据表的前 10 个观察值。


视频

从决策树到随机森林:R语言信用卡违约分析信贷数据实例

探索见解

去bilibili观看

探索更多视频

/* 将变量名称转换为混合大小写 */
data my.hm;
   length Bd oan Motue Value 8 Reason Job $7

显示 的前 10 个观测值。

输出数据的部分列表 

创建分类决策树

以下语句创建分类树:

proc  maxdepth=5;
   model Bad = Dei o JbIq as LAeL
               DtInLa Mrue ae J;
   prune costcomplexity;

这 MAXDEPTH= 选项指定要生长的树的最大深度为 5。

Bad 在等号左侧 指定 MODEL 语句表明它是因变量。

因为没有包含 GROW 语句,所以 PROC TREEPLIT 默认使用熵度量,它计算增长树的增益。这 PRUNE 语句要求进行成本复杂性修剪。

这 PARTITION 声明要求将观察结果 Hmeq 划分为不相交的子集以进行模型训练和验证。随机选择观测值作为验证子集,概率为 0.3;为训练子集选择剩余的观察值。

FILE= 选项 CODE 语句请求将 SAS DATA 步得分代码保存到名为 trc.sas.

树形图

最终树的概览图

如绘图图例中的颜色所示,为终端节点中的观察分配了 Bad=0 或 =1 的预测。叶节点中的第一个条形显示与训练分区中=0 或 =1Bad的预测相匹配的因变量的比例, 叶节点中的第二个条形显示与验证分区中匹配的因变量的比例。线的粗细表示哪些节点具有更多的总观测值。

树形图在是树顶部的详细视图。


R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测

阅读文章


详细树形图


随时关注您喜欢的主题


默认情况下,此视图提供有关树的前三个级别的详细拆分信息,包括根级别。每个节点上方的拆分规则显示拆分变量和拆分值;该规则确定来自父节点的哪些观察值包含在节点中。节点内表的第一行提供节点标识符。第二行提供训练观察的数量,后跟反斜杠,然后是验证观察的数量。如果在该点发生分类,第三行显示该节点中观察的预测因变量,以及训练观察与观察到的因变量的比例。这通过反斜杠与验证观察的比例分开。

显示最终树的拟合统计量

输出 :树性能

树分裂程序

显示修剪图

修剪图

此图显示修剪树时训练和验证数据的错误分类率。垂直线显示选定的最终树,它对验证数据具有最低的误分类率。

创建评分代码并对新数据进行预测评分

除了查看有关树模型的信息之外,您可能有兴趣应用该模型来预测因变量未知的其他数据表中的因变量。您可以运行 SAS DATA 步代码对新数据进行评分。以下是示例:

data scd;
   set smo.hq;
   %include 'tc.sas';
run;

显示 的部分列表 。

输出 :评分 数据的部分列表

数据表包含由分数代码创建的 13 个原始变量和 4 个新变量。变量 PA1 是这片叶子中训练观察的比例 BAD=1;这个变量可以解释为违约概率。该变量 IAD 表示观测值的 BAD 预测值。

您可以使用前面的语句对新数据进行评分,方法是在 SET 语句中包含新数据表 。新数据表必须包含与用于构建树模型的数据相同的变量,但不能包含您现在要预测的未知因变量。


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds