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

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

分类树的一个常见用途是预测抵押贷款申请人是否会拖欠贷款。数据包含对 5,960 名抵押贷款申请人的观察结果查看文末了解数据获取方式。一个名为的变量 Bad 表示申请人在获得贷款批准后是还清贷款还是拖欠贷款。

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

数据变量

表 :数据表中的变量

变量 类型 等级 描述
Bad 因变量 二进制 1 = 申请人拖欠贷款或严重拖欠贷款



0 = 申请人还清贷款
CLAge 预测变量 区间 最长信用额度的月龄
CLNo 预测变量 区间 信用额度数量
DebtInc 预测变量 区间 债务收入比
Delinq 预测变量 区间 拖欠信用额度的数量
Derog 预测变量 区间 重大贬损报道数量
Job 预测变量 标称 职业类别
Loan 预测变量 区间 申请贷款金额
MortDue 预测变量 区间 抵押贷款到期金额
nInq 预测变量 区间 近期信用查询次数
Reason 预测变量 二进制 DebtCon = 债务合并



HomeImp = 家庭改善
Value 预测变量 区间 财产价值
YoJ 预测变量 区间 目前工作年限

加载数据

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

/* 将变量名称转换为混合大小写 */
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的预测相匹配的因变量的比例, 叶节点中的第二个条形显示与验证分区中匹配的因变量的比例。线的粗细表示哪些节点具有更多的总观测值。

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

详细树形图

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

显示最终树的拟合统计量

输出 :树性能

树分裂程序

显示修剪图

修剪图

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

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

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

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

显示 的部分列表 。

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

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

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

相关文章
|
存储 人工智能 编译器
C/C++期末考试复习---知识点+习题
C/C++期末考试复习---知识点+习题
1956 2
|
编解码 数据可视化 前端开发
如何使用 D3.js 创建一个交互式的地图可视化?
如何使用 D3.js 创建一个交互式的地图可视化?
535 6
|
安全 网络协议 网络安全
端口转发:解锁网络访问的新维度
端口转发技术,简化网络数据流,用于家庭至企业服务器场景。它隐藏内部网络服务,提供远程访问、个人网站公开、NAT穿透及安全的VPN连接。设置涉及路由器管理界面,添加转发规则,但需注意安全风险,仅开放必要端口并加强内部安全措施。了解和善用端口转发,提升网络服务可达性与安全性。
922 5
|
存储 数据可视化 数据挖掘
图书馆图书可视化分析+大屏
在数字化时代背景下,图书馆已经成为知识获取和共享的重要场所。然而,随着馆藏书籍数量的增加,如何高效管理和利用这些资源成为了图书馆管理者和用户面临的挑战。数据分析和可视化技术的引入为解决这一问题提供了新的途径。本文致力于通过数据分析技术和可视化手段,对图书馆书籍数据进行综合挖掘,希望通过图书分类、书籍价格及读者偏好等多维度信息,进而优化图书馆管理策略、指导书籍采购决策并提升读者服务质量。本文在数字化和信息化快速发展的背景下,图书馆如何利用数据分析与可视化方法来挖掘和优化书籍借阅数据。主要内容包括。
1202 2
|
Kubernetes 关系型数据库 MySQL
Kubernetes入门:搭建高可用微服务架构
【10月更文挑战第25天】在快速发展的云计算时代,微服务架构因其灵活性和可扩展性备受青睐。本文通过一个案例分析,展示了如何使用Kubernetes将传统Java Web应用迁移到Kubernetes平台并改造成微服务架构。通过定义Kubernetes服务、创建MySQL的Deployment/RC、改造Web应用以及部署Web应用,最终实现了高可用的微服务架构。Kubernetes不仅提供了服务发现和负载均衡的能力,还通过各种资源管理工具,提升了系统的可扩展性和容错性。
444 3
|
SQL 关系型数据库 MySQL
navicat如何获取MySQL数据库的所有表名称
【8月更文挑战第7天】navicat如何获取MySQL数据库的所有表名称
1088 4
|
机器学习/深度学习 算法 开发工具
通义千问2(Qwen2)大语言模型在PAI-QuickStart的微调、评测与部署实践
阿里云的人工智能平台PAI,作为一站式的机器学习和深度学习平台,对Qwen2模型系列提供了全面的技术支持。无论是开发者还是企业客户,都可以通过PAI-QuickStart轻松实现Qwen2系列模型的微调、评测和快速部署。
|
SQL 数据库
【SQL】已解决:SQL错误(208):对象名‘STRING_SPLIT‘无效
【SQL】已解决:SQL错误(208):对象名‘STRING_SPLIT‘无效
1706 0
|
缓存 负载均衡 算法
【软件设计师备考 专题 】性能指标(响应时间、吞吐量、周转时间)和性能设计
【软件设计师备考 专题 】性能指标(响应时间、吞吐量、周转时间)和性能设计
1110 0