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

有监督学习——决策树

任务

1、基于iris_data.csv数据,建立决策树模型,评估模型表现;

2、可视化决策树结构;

3、修改min_samples_leaf参数,对比模型结果

代码工具:jupyter notebook

参考资料

20.23 决策树(1)_哔哩哔哩_bilibili

21.24 决策树(2)_哔哩哔哩_bilibili 

  博文:https://www.cnblogs.com/zwh0910/p/18708363

数据准备

数据集名称:iris_data.csv

点我转到百度网盘获取数据集 提取码: 8497 

#加载数据
import pandas as pd
data = pd.read_csv('iris_data.csv')
data.head()

X= data.drop(['target','label'], axis = 1)
y = data.loc[:,'label']
print(X.shape, y.shape) #(150, 4) (150,)

建立模型

#建立决策树模型
from sklearn import tree
dc_tree = tree.DecisionTreeClassifier(criterion = 'entropy', min_samples_leaf = 5)
#criterion='entropy’也就是采用ID3。min_samples_leaf:叶子节点最少样本数,少于最少样本数就没必要往下分了。
#决策树分裂出来的叶子最少要有5个样本,如果再往下分发现少于5个样本节点就没有必要往下分了
dc_tree.fit(X, y) #

#预测
y_predict = dc_tree.predict(X)
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y, y_predict)
print(accuracy)#0.9733333333333334

决策树可视化

import matplotlib.pyplot as plt
fig1 = plt.figure(figsize=(10,10))
tree.plot_tree(dc_tree, filled=True, feature_names = ['SepalLength', 'SepalWidth', 'PetalLength','PetalLength','PetalWidth'], class_names=['setosa','versicolor','virginica'])
#填充底色, 分类名称
# filled=True表示根据不同的分类加上不同的背景颜色。feature_names是修改属性名称。class_names显示输出类别。plt.show()

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

相关文章:

  • 华为OD机试真题——启动多任务排序(2025B卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • AWS云与第三方通信最佳实践:安全、高效的数据交互方案
  • Ubuntu Server 24 设置 WiFi 网络的方案
  • 【redis】redis和hiredis的基本使用
  • 大模型时代,Python 近红外光谱与 Transformer 模型:学习的必要性探究
  • 产品经理常用术语大全
  • 梯度优化提示词:精准引导AI分类
  • AUTOSAR 运行时环境 (RTE)
  • Bolt.new:重塑 Web 开发格局的 AI 利器
  • RK3588 RKNN ResNet50推理测试
  • SQLMesh 宏操作符详解:提升 SQL 查询的灵活性与效率
  • leetcode513.找树左下角的值:递归深度优先搜索中的最左节点追踪之道
  • 基于Flink的数据中台管理平台
  • AI-Ready TapData:如何基于 MCP 协构建企业级 AI 实时数据中枢?(含教程)
  • Spring Boot 登录实现:JWT 与 Session 全面对比与实战讲解
  • 【HTML-5】HTML 实体:完整指南与最佳实践
  • SpringBoot 项目实现操作日志的记录(使用 AOP 注解模式)
  • AI|Java开发 IntelliJ IDEA中接入本地部署的deepseek方法
  • 【疑难杂症】Vue前端下载文件无法打开 已解决
  • 【1——Android端添加隐私协议(unity)1/3】
  • Linux之概述和安装vm虚拟机
  • 深入理解 Linux 的 set、env 和 printenv 命令
  • LeetCode热题100--19.删除链表的倒数第N个结点--中等
  • 开发AR导航助手:ARKit+Unity+Mapbox全流程实战教程
  • git学习与使用(远程仓库、分支、工作流)
  • 嵌入式预处理链接脚本lds和map文件
  • 9. Spring AI 各版本的详细功能与发布时间整理
  • 《Android 应用开发基础教程》——第十四章:Android 多线程编程与异步任务机制(Handler、AsyncTask、线程池等)
  • Apache 高级配置实战:从连接保持到日志分析的完整指南
  • 开源 OIDC(OpenID Connect)身份提供方(IdP)、iam选型