当前位置: 首页 > 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.xdnf.cn/news/1234441.html

相关文章:

  • Python-初学openCV——图像预处理(六)
  • Linux网络编程 ---五种IO模型
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现各类垃圾的分类检测识别(C#代码UI界面版)
  • 基于MBA与BP神经网络分类模型的特征选择方法研究(Python实现)
  • Java学习第一百部分——Kafka
  • (论文速读)探索多模式大型语言模型的视觉缺陷
  • 关于Web前端安全防御之内容安全策略(CSP)
  • 大语言模型涉及的一些概念(持续更新)
  • Azure DevOps 中的代理
  • 知识点汇集(二)-misc
  • 【数据结构】哈希表实现
  • 数据结构:在链表中插入节点(Inserting in a Linked List)
  • 蛇形卷积介绍
  • AVDTP Media Packet 报文深度解析:蓝牙音频流的幕后功臣
  • Celery-分布式任务队列
  • linux2.6 和 unix-v6 源码实验
  • K8S服务发现原理及开发框架的配合
  • 利用AI渲染技术提升元宇宙用户体验的技术难点有哪些?
  • 语义分割--deeplabV3+
  • Navicat连接远程服务器上的mysql
  • ubuntu24.04安装selenium、chrome、chromedriver
  • elk快速部署、集成、调优
  • [Oracle] TO_DATE()函数
  • 二叉树算法之【前序遍历】
  • GitOps:云原生时代的革命性基础设施管理范式
  • 每日五个pyecharts可视化图表-bars(2)
  • Python Seaborn【数据可视化库】 全面讲解
  • 基于图像识别与分类的中国蛇类识别系统
  • k8s日志收集
  • zookeeper常见命令和常见应用