当前位置: 首页 > news >正文

决策树的实际案例

决策树作为一种直观、易解释的机器学习算法,在金融、医疗、电商、风控等多个领域都有广泛的实际应用。以下将讲解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.lryc.cn/news/608646.html

相关文章:

  • sqli-labs:Less-25关卡详细解析
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | TodoList(代办事项组件)
  • 子区间问题
  • 主机序列号的修改方法与原理
  • Azure DevOps 中的代理
  • 渗透作业4
  • LeetCode - 合并两个有序链表 / 删除链表的倒数第 N 个结点
  • webrtc弱网-QualityScaler 源码分析与算法原理
  • PLC传感器接线与输出信号接线
  • WSUS服务器数据库维护与性能优化技术白皮书
  • 力扣 hot100 Day64
  • 六、Linux核心服务与包管理
  • 若没有安全可靠性保障,对于工程应用而言,AI或许就是大玩具吗?
  • Python黑科技:用@property优雅管理你的属性访问
  • ThinkPHP5x,struts2等框架靶场复现
  • 控制建模matlab练习10:滞后补偿器
  • 吴恩达【prompt提示词工程】学习笔记
  • MCP革命:Anthropic如何重新定义AI与外部世界的连接标准
  • 2.4.1-2.4.3控制范围-控制进度-控制成本
  • STM32复位电路解析
  • Rustdesk中继服务器搭建(windows 服务器)
  • 蜂群优化算法:智能优化新突破
  • 联想笔记本安装系统之后一直转圈圈的问题了?无法正常进入到系统配置界面,原来是BIOS中的VMD问题
  • VUE2 学习笔记16 插槽、Vuex
  • 09.Redis 常用命令
  • C++23 Concepts:用类型约束重构泛型编程的终极方案
  • 选择排序原理与C语言实现详解
  • redis的Java客户端(SpringDataRedis)
  • 深入掌握 ExcelJS:Node.js 中强大的 Excel 操作库
  • 2、docker容器命令 | 信息查看