决策树的实际案例

决策树作为一种直观、易解释的机器学习算法,在金融、医疗、电商、风控等多个领域都有广泛的实际应用。以下将讲解1个典型案例:贷款违约预测。

对于贷款违约预测,即在贷款人员在贷款之前对其进行预测,通过他的众多特征情况判别是否可以为其办理贷款业务及其可以办多少额度的贷款项目。

场景背景:

银行或金融机构在发放个人贷款时,需要评估申请人的还款能力和违约风险,避免因借款人违约导致的资金损失。传统风控依赖人工审核,效率低且主观性强,而决策树可通过历史数据自动构建风险评估模型。

核心需求:

基于申请人的基本信息(年龄、收入、职业)、信用记录(征信逾期次数、信用卡负债)、贷款信息(贷款金额、期限)等特征,预测其未来是否会违约(二分类问题:违约 / 不违约)。

决策树应用过程

数据收集与预处理
收集历史贷款用户数据,包括特征变量(如年龄、月收入、征信逾期次数、贷款金额、是否有房贷等)和目标变量(是否违约:1 = 违约,0 = 不违约)。处理缺失值(如用中位数填充收入缺失)、异常值(如剔除极端高收入样本)。

模型构建
用决策树算法对数据进行训练,通过递归划分特征空间:

第一层可能以 “征信逾期次数> 3 次” 为划分节点,将高逾期用户分到高风险分支;

低逾期分支再以 “月收入 < 5000 元” 划分,收入较低者进入次高风险分支;

最终叶子节点输出 “违约概率 80%” 或 “不违约概率 95%” 等结果。

实际价值

自动筛选高风险申请人,降低坏账率;

规则可视化,便于风控人员理解和调整策略。

代码实现:

import pandas as pd
import numpy as np
from sklearn import tree
from sklearn import metrics
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
data = pd.read_excel('客户数据.xlsx')
X = data.iloc[:,:-1]
y = data.iloc[:,-1]
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y ,test_size=0.2, random_state=42)
scores = []
sc = 0
dp = [5,6,7,8,9,10,11]   # min_samples_leaf min_samples_split
msl = [5,8,9,10,11,12]
mss = [7,8,9,10,11,12]
mln = [5,6,7,8,9,10,11]
for a in dp:for b in msl:for c in mss:for d in mln:dtr = tree.DecisionTreeClassifier(criterion='gini', max_depth=a,min_samples_leaf=b,min_samples_split=c,max_leaf_nodes=d,random_state=42)score = cross_val_score(dtr, X_train, y_train, cv=3, scoring='recall')score_mean = sum(score) / len(score)if score_mean > sc:sc = score_meanscore_mean = score_meanbest = [a,b,c,d]
print(best)
#             best_C = dp[np.argmax(scores)]
# print('最优深度为:{}'.format(best_C))
dtr = tree.DecisionTreeClassifier(criterion='gini', max_depth=best[0],min_samples_leaf=best[1],min_samples_split=best[2],max_leaf_nodes=best[3],random_state=42)
dtr.fit(X_train,y_train)
train_predicted = dtr.predict(X_train)
print(metrics.classification_report(y_train,train_predicted))
test_predicted = dtr.predict(X_test)
print(metrics.classification_report(y_test,test_predicted))

 上述代码就是一个将数据带入一个简单的决策树模型进行对贷款人员的信息进行筛选评判获取可贷款人员,其中对决策树的模型进行了参数的交叉验证选出最优参数。

决策树凭借直观的规则、易解释性和广泛的适用性,在风控、医疗、营销等领域成为经典的 “开箱即用” 算法。实际应用中需结合业务场景选择合适的特征,通过剪枝、集成(如随机森林、GBDT)等方法优化性能,充分发挥其在 “将复杂问题转化为可执行规则” 上的优势。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/92223.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bool 类型转换运算符重载

以下是一个极简且聚焦核心知识点的示例代码&#xff0c;用最直观的方式演示 bool 类型转换运算符重载的触发逻辑、使用场景和避坑点&#xff0c;帮你快速掌握&#xff1a;cpp运行#include <iostream> using namespace std;// 核心类&#xff1a;演示 bool 转换运算符 cla…

LVGL代码框架简介

LVGL代码框架介绍LVGL&#xff08;Light and Versatile Graphics Library&#xff09;是一个轻量级、功能强大的嵌入式图形库。其代码架构设计清晰&#xff0c;模块化程度高。1. 整体架构层次LVGL采用分层架构设计&#xff0c;主要包含以下几个层次&#xff1a;┌───────…

【云计算】云主机的亲和性策略(三):云主机 宿主机

《云主机的亲和性策略》系列&#xff0c;共包含以下文章&#xff1a; 1️⃣ 云主机的亲和性策略&#xff08;一&#xff09;&#xff1a;快乐旅行团2️⃣ 云主机的亲和性策略&#xff08;二&#xff09;&#xff1a;集群节点组3️⃣ 云主机的亲和性策略&#xff08;三&#xf…

【世纪龙科技】虚拟技术助力职教汽车自动变速器拆装虚拟实训软件

在职业院校汽车专业实训课堂上&#xff0c;教师常面临这样的两难&#xff1a;学生围在昂贵的自动变速器实物旁&#xff0c;却因设备数量有限只能轮流操作&#xff1b;拆装步骤稍有偏差便可能损坏精密部件&#xff0c;维修成本让本就紧张的教学经费雪上加霜&#xff1b;传统教学…

[LVGL] 配置lv_conf.h | 条件编译 | 显示屏lv_display

链接&#xff1a;https://docs.lvgl.io/master/ docs&#xff1a;LVGL LVGL&#xff08;Light and Versatile Graphics Library&#xff09;是用于在资源受限的嵌入式系统上创建图形用户界面&#xff08;GUI&#xff09;的开源解决方案。 它提供丰富的控件和灵活的**事件系…

sqli-labs通关笔记-第32关 GET宽字符注入(单引号闭合 手工注入+脚本注入两种方法)

目录 一、宽字符注入 二、代码审计 1、代码审计 2、SQL注入安全性分析 三、渗透实战 1、进入靶场 2、id1探测 3、id%df-- 探测 4、手工注入 &#xff08;1&#xff09;获取列数 &#xff08;2&#xff09;获取回显位 &#xff08;3&#xff09;获取数据库名 &…

MySQL的创建管理表:

目录 基础知识&#xff1a; 一条数据存储的过程&#xff1a; 标识符命名规则&#xff1a; 创建和管理数据库&#xff1a; 创建数据库&#xff1a; 创建数据库&#xff1a; 创建数据库并指定字符集&#xff1a; 判断数据库是否存在&#xff0c;不存在则创建数据库&#…

Linux Vi常用指令总结

Vi&#xff08;及其改进版 Vim&#xff09;是 Linux 中常用的文本编辑器&#xff0c;虽然入门有一定门槛&#xff0c;但熟练掌握后效率极高。以下是常见指令分类整理&#xff1a;1. 模式切换 普通模式&#xff08;命令模式&#xff09;&#xff1a;启动后的默认模式&#xff0c…

解决远程连接云服务器mysql编号1130问题

连接云服务器mysql失败&#xff0c;可能是因为ip发生改变&#xff0c;被mysql拦截。我自己前后做了两件事。大家赶时间可直接从二开始&#xff0c;不放心的就从一开始到结束一、在云服务器实例中为当前ip配置安全组权限。1.找到当前服务器的实例&#xff0c;进入安全组。为其增…

大数据存储域——HDFS存储系统

摘要本文介绍了HDFS存储系统&#xff0c;包括其组件、工作机制、实战经验总结、使用场景以及与SpringBoot的实战示例和优化设计。HDFS由Client、NameNode、SecondaryNameNode、DataNode等组件构成&#xff0c;通过特定的工作机制实现文件的读取和写入。它适用于多种场景&#x…

jdk动态代理如何实现

口语化答案好的&#xff0c;面试官。jdk 的动态代理主要是依赖Proxy类 和InvocationHandler 接口。jdk 动态代理要求类必须有接口。在进行实现的时候&#xff0c;首先要定义接口&#xff0c;比如MyService&#xff0c;这个接口就是我们的正常功能的实现。但是希望在不更改MySer…

自然语言处理的相关概念与问题

目录 一、学科的产生与发展 1、什么是自然语言&#xff1f; 2、自然语言处理技术的诞生 二、技术挑战 三、基本方法 1、方法概述 理性主义方法 经验主义方法 2、传统的统计学习方法 3、深度学习方法 词向量表示 词向量学习 开源工具 四、应用举例 1、汉语分词 …

Anthropic MCP架构深度解析:下一代AI工具集成协议的设计哲学

本文深入剖析Anthropic提出的模型通信协议(MCP),揭示其如何重构AI与工具生态的交互范式,打造安全高效的智能体基础设施。 引言:AI工具集成的"巴别塔困境" 当前AI生态面临的核心挑战: #mermaid-svg-lSpYBxzxD5oiYwcL {font-family:"trebuchet ms",verd…

【注意】HCIE-Datacom华为数通考试,第四季度将变题!

最近&#xff0c;数据通信圈子可热闹坏啦&#xff01;好几个渠道都证实了&#xff0c;HCIE - Datacom实验考试马上要有大变化咯&#xff01; 这可不是啥小道消息&#xff0c;也不是那种试点的传言&#xff0c;而是从IE内部技术交流会上得到的确切消息。 这边联系了华为认证的好…

MySql 硬核解析系列 一 MySQL的锁机制

MySQL 的锁机制是其并发控制的核心,直接影响数据库的性能、一致性与可用性。本文将从底层原理、锁的分类、实现机制、锁的粒度、锁的兼容性、死锁处理、InnoDB 的行锁实现、MVCC 与锁的关系等多个维度,进行硬核、深度解析,适用于希望深入理解 MySQL 并发控制机制的开发者与 …

7.软件工程

软件生命周期软件生命周期什么是软件工程&#xff1f;以工程化的原则和方法来开发软件&#xff0c;其目的是提高软件生产率、提高软件质量、降低软件成本。软件工程3大组成部分&#xff1a;方法、工具、过程。什么是软件生命周期&#xff1a;经过开发、使用和维护&#xff0c;直…

C 语言结构体与 Java 类的异同点深度解析

在编程语言的发展历程中,C 语言的结构体与 Java 的类扮演着至关重要的角色。作为面向过程编程的经典代表,C 语言的结构体为数据封装提供了基础形式;而 Java 作为纯面向对象语言,类则是其核心语法结构。二者既存在一脉相承的设计思想,又因编程语言范式的差异呈现出显著区别…

C++、STL面试题总结(二)

1. 必须实现拷贝构造函数的场景 核心问题&#xff1a;默认拷贝构造的缺陷 C 默认的拷贝构造函数&#xff08;浅拷贝&#xff09;&#xff0c;会直接拷贝指针 / 引用成员的地址。若类包含引用成员或指向堆内存的指针&#xff0c;浅拷贝会导致 “多个对象共享同一份资源”&…

IntelliJ IDEA2024 错误‘http://start.spring.io/‘的初始化失败,请检查URL、网络和代理设置。

下载新版本的intellij idea2024创建项目时&#xff0c;服务器URL报错误http://start.spring.io/的初始化失败&#xff0c;请检查URL、网络和代理设置。错误消息&#xff1a;Cannot download http://start.spring.io/:Permission denied:getsockopt&#xff0c;具体如下图&#…

从零开始的云计算生活——第三十八天,避坑落井,Docker容器模块

一.故事背景 在综合使用了之前全部的知识完成项目之后&#xff0c;接下来将学习更简单的方法来对之前的命令进行使用&#xff0c;马上进入容器模块 二. Docker概述 Docker简介 Docker&#xff0c;翻译过来就是码头工人 Docker是一个开源的应用容器引擎&#xff0c;让开发者…