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

【Python机器学习系列】一文教你实现决策树模型可视化(案例+源码)

这是我的第335篇原创文章。

一、引言

决策树是一个有监督分类模型,本质是选择一个最大信息增益的特征值进行输的分割,直到达到结束条件或叶子节点纯度达到阈值。根据分割指标和分割方法,可分为:ID3、C4.5、CART算法。每一种颜色代表一个class,link的宽度表示从一个节点流向另一个节点的items数量。

需要安装第三方库:

pip install pybaobabdt
pip install pygraphviz

二、实现过程

2.1 准备数据

data = pd.read_csv(r'Dataset.csv')
df = pd.DataFrame(data)
print(df.head())

df:

图片

2.2 提取特征变量和目标变量

target = 'target'
features = df.columns.drop(target)
print(data["target"].value_counts()) # 顺便查看一下样本是否平衡

2.3 划分训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(df[features], df[target], test_size=0.2, random_state=0)

2.4 模型构建和训练

model = DecisionTreeClassifier(max_depth=5)
model.fit(X_train, y_train)

2.5 决策树模型可视化

ax = pybaobabdt.drawTree(model, size=10, dpi=300, features=features) #可视化主函数pybaobabdt.drawTree
plt.show()

结果:

图片

作者简介:

读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。需要数据集和源码的小伙伴可以关注底部公众号添加作者微信。

http://www.lryc.cn/news/412291.html

相关文章:

  • 如何在Python中使用网页抓取API获得Google搜索结果
  • Postman高频面试题及答案汇总(接口测试必备)
  • JavaEE 初阶(13)——多线程11之“定时器”
  • 2024最新全开源付费进群系统源码二开修复版 支持易支付
  • 【奥顺苹果CMS二开泛目录4.X版】PHP站群程序新增首页堆砌关键词新增四套seo模板
  • day06 项目实践:router,axios
  • ⌈ 传知代码 ⌋ 基于矩阵乘积态的生成模型
  • 软件测试必备技能
  • TL3568编译uboot报错
  • qiankun 微前端 隔离子应用样式,解决 ant-design-vue 子应用样式污染问题(已落地)
  • 一个前后端分离架构的低代码开发平台,支持微服务架构,支持开发SAAS项目(附源码)
  • whisper+whisperx ASR加对齐
  • 【已解决】YOLOv8加载模型报错:super().__init__(torch._C.PyTorchFileReader(name_or_buffer))
  • 中国象棋 纯网页前端 演示与下载
  • 学习大数据DAY29 python基础语法2
  • 自动化测试常用函数(Java方向)
  • 申瓯通信设备有限公司在线录音管理系统(复现过程)
  • 【C++进阶学习】第十一弹——C++11(上)——右值引用和移动语义
  • JavaScript 监听 localStorage 的变化
  • Java 中 HashMap 和 Hashtable 的联系
  • Web3 开发教程
  • 傻瓜式PHP-Webshell免杀学习手册,零基础小白也能看懂
  • 第十九次(安装nginx代理tomcat)
  • 小红书0510笔试-选择题
  • 3.Java面试题之AQS
  • redis的集群(高可用)
  • 随机森林的算法
  • 3.1、数据结构-线性表
  • 记一次对HTB:Carpediem的渗透测试
  • MATH2 数据集:AI辅助生成高挑战性的数学题目