当前位置: 首页 > 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.dtcms.com/a/312934.html

相关文章:

  • Ethereum: 了解炙手可热 Layer 2 解决方案 Base
  • C++手撕基于ID3算法的决策树
  • 玩转 Playwright 有头与无头模式:消除差异,提升爬虫稳定性
  • Linux 系统调用 stat 完全用例
  • Memcached Slab分配器:零碎片的极速内存管理
  • FFT/STFT/小波/HHT:振动诊断工具生死局,选错=灾难
  • MySQL——增删改查操作
  • Compose笔记(四十一)--ExtendedFloatingActionButton
  • 嵌入式开发学习———Linux环境下IO进程线程学习(二)
  • 【C++】面向对象编程:继承与多态的魅力
  • kafka创建topic报错解决思路之一
  • 日常--详细介绍qt Designer常用快捷键(详细图文)
  • 硅基计划3.0 知识探究 常见类方法
  • 关于Web前端安全防御之安全头配置
  • PHP入门及数据类型
  • 【2025ICCV-目标检测方向】WaveMamba:用于 RGB-红外目标检测的小波驱动曼巴融合
  • 《金字塔原理》读书思考笔记
  • GitOps:云原生时代的革命性基础设施管理范式
  • 关于 xrdp远程桌面报错“Error connecting to sesman on 127.0.0.1:3350“的解决方法
  • Python 基础语法(一):从常量到运算符
  • LeetCode 126:单词接龙 II
  • C语言的基本结构
  • http://localhost:8080/photos/xxx.png的本地图片访问方案
  • 电路原理图绘制专业实战教程2
  • 0803 思维导图+小项目
  • 【Redis学习路|第一篇】初步认识Redis
  • PPT写作五个境界--仅供学习交流使用
  • 构建企业级Web应用:AWS全栈架构深度解析
  • 力扣经典算法篇-39-有效的数独(二维数组和三维数组的应用)
  • AI 编程技巧、技术笔记