day07——决策树

news2025/2/24 23:58:35

决策树

  • 一、认识决策树
  • 二、API
  • 三、案例:泰坦尼克号乘客生存预测
    • 1,题目概述
    • 2,分析
    • 3,代码
    • 4,保存树结构

一、认识决策树

决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法

举例:
在这里插入图片描述
在对这些客户进行分类预测时,我们的划分可能是下面的样子
在这里插入图片描述
那么我们怎么知道这些特征哪个放在最上面更好,这就是决策树要解决的问题

二、API

class sklearn.tree.DecisionTreeClassifier(criterion=’gini’, max_depth=None, random_state=None)
# criterion : 默认是’gini’系数,也可以选择信息增益的熵’entropy’
# max_depth : 树的深度大小
# random_state : 随机数种子
# max_depth : 树的深度大小

三、案例:泰坦尼克号乘客生存预测

1,题目概述

titanic.csv 数据描述泰坦尼克号上的个别乘客的生存状态。其中包括旅客名单,数据集中的特征是票的类别,存活,乘坐班,年龄,登陆,home.dest,房间,票,船和性别。
1、乘坐班是指乘客班(1,2,3),是社会经济阶层的代表。
2、其中age数据存在缺失。

2,分析

  • 选择我们认为重要的几个特征 [‘pclass’, ‘age’, ‘sex’]
  • 对 age 填充缺失值
  • 特征进行one-hot编码处理(DictVectorizer)
  • x.to_dict(orient=“records”) 需要将数组特征转换成字典数据数据集划分
  • 决策树分类预测

3,代码

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.feature_extraction import DictVectorizer

titan = pd.read_csv("titanic.csv")

# 数据的处理
x = titan[['pclass', 'age', 'sex']]
y = titan['survived']

# 缺失值需要处理,将特征当中有类别的这些特征进行字典特征抽取
x['age'].fillna(x['age'].mean(), inplace=True)

# 对 x 进行one-hot编码处理
# [{"pclass": "1st", "age": 29.00, "sex": "female"}, {}]
dict = DictVectorizer(sparse=False)
# 对于 x 转换成字典数据 x.to_dict(orient="records")
x = dict.fit_transform(x.to_dict(orient="records"))

# 分割训练集合测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3)

# 进行决策树的建立和预测
dc = DecisionTreeClassifier(max_depth=5)
dc.fit(x_train, y_train)

print("预测的准确率为:", dc.score(x_test, y_test))

4,保存树结构

保存树的结构到dot文件

# 该函数能够导出DOT格式
sklearn.tree.export_graphviz() 
export_graphviz(estimator,out_file='tree.dot’,feature_names=[‘’,’’])

实操:将上述结果转换为树存入 dot 文件

from sklearn.tree import export_graphviz

export_graphviz(dc, out_file="./tree.dot", feature_names=['age', 'pclass=1st', 'pclass=2nd', 'pclass=3rd', '女性', '男性'])

最后把 dot 文件的内容复制到 webgraphviz 网站,实现树结构可视化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/619166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从2023年Q1,看当下的量子产业

光子盒研究院 一旦实现商业化,量子计算将带领人类进入一个全新的领域。 今天,人工智能(AI)、ChatGPT等大语言模型的处理能力受限于芯片有限的表面积:超过一定数量的GPU,每个GPU的批处理量就会变小——进一步增加数量反而会增大成本…

httprunner 2.x介绍与使用

一、原文地址: 使用说明_httprunner2.0 概述及使用说明 httprunner2接口测试框架说明文档 - 简书 二、介绍 HttpRunner是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、…

HTML5、CSS3和JavaScript的基础知识以及从入门到精通的学习路径

摘要: HTML5、CSS3和JavaScript是现代Web开发的核心技术,掌握它们对于想要从事Web开发的人来说至关重要。本文将介绍HTML5、CSS3和JavaScript的基础知识以及从入门到精通的学习路径。通过深入理解这三种技术的特性和用法,并结合实践项目&…

MacOS怎么查看进程占用内存是多少

一、背景 在Linux下可以使用 free 命令来方便的查看内存占用情况,如 free -g、free -m等,但MacOS下没有这个命令。 既然如此,那么MacOS里是否有类似的工具呢? 而我们又该如何查看整个PC的内存占用情况,及指定进程的…

3.1 PTQ与QAT的介绍

1. 前言 TensorRT有两种量化模式,分别是implicitly量化(隐式量化)以及explicitly量化(显性量化)。 隐式量化(trt7 版本之前) 只具备 PTQ 一种量化形式各层精度不可控显示量化 显性量化(trt8 版本之后) 支持带 QDQ 节点的 PTQ 以及 支持带 QDQ 节点的 QAT 两种量…

从零开始,申请开通微信小程序全流程

本系列文章适合三类同学:1.希望学习小程序开发;2.希望无代码、低代码拥有自己的小程序;3.快速搭建小程序交作业、交毕设的大学生 本系列文章将推出配套桌面端软件,配合软件,可实现傻瓜式开发小程序,请有需求…

计算机体系结构-期末复习

计算机体系结构-期末复习 第一章 量化设计与分析基础 | 1.2.6 并行度与并行体系结构的分类 应用程序中主要有两种并行: 数据级并行:同时操作许多数据项实现的并行任务级并行:创建能够单独处理并大量采用并行方式执行的工作任务 所有计算…

如何理解网络—网络框架介绍

目录 前言 一.计算机网络背景 二.局域网和广域网 三.网络协议 3.1产生的背景 3.2分层实现 四.OSI七层模型 4.1OSI七层模型的结构 4.2如何理解OSI七层模型 五.TCP/IP五层(或四层)模型 六.网络传输基本流程 7.网络中的地址管理 7.1IP地址 7.2MAC地址 7.3MAC地址和IP地址的区别和联…

2021-2023浙江省内八大MBA项目招生情况:注意大小年啊~

现如今国内的MBA教育呈现出一片繁华景象,过去的这些年来每年几乎都有新增加的MBA招生院校,浙江省内目前共有九大MBA招生院校,除了浙大独领风骚之外,其余八个MBA项目也都有自己的一席之地。纵观2023年的招生录取,小立老…

ValueError: Object arrays cannot be loaded when allow_pickle=False

一、问题 使用numpy读取数据时出现错误,ValueError: Object arrays cannot be loaded when allow_pickleFalse。 查了一下numpy.load()函数 用法 numpy.load(file, mmap_modeNone, allow_pickLeFalse, fix_mportsTrue, encoding‘ASCII’) 参数 file:…

【Android】AMS(三)APP启动流程

启动方式 在 Android 系统中,启动一个应用程序可以分为三种启动方式:热启动、冷启动和温启动。它们分别表示了不同的启动方式和启动过程。 热启动 热启动是指在已经打开并处于后台运行的应用程序中,再次通过图标进入应用程序的启动方式。这…

Spring Security OAuth停更了?探索官方进化版Spring Authorization Server的革新之处!

1、背景 Spring Security OAuth(spring-security-oauth2)停更 主要意思是:生命周期终止通知 Spring Security OAuth(spring-security-oauth2)项目已达到生命周期结束,不再由VMware,Inc.积极维护。 此项目已被Spring Security和Spring Author…

信创办公–基于WPS的EXCEL最佳实践系列 (设置多级列表)

信创办公–基于WPS的EXCEL最佳实践系列 (设置多级列表) 目录 应用背景操作步骤1、删除重复项2、部门绑定3、填入相关信息 应用背景 当我们在使用电子表格时,很多类型重复输入很麻烦,看起来也很复杂,我们就可以设置多级…

关于输入输出格式符的测试

对输出%m.nf的测试 m代表宽度,表示数据可以占m列n代表精确,表示小数占n列 以下用%6.3f进行测试,有两个问题: 1、这个m是包括小数点位数吗?(todo未果) 2、精确度n超过了是怎么处理的&#xff1f…

2023年第六届广西大学生程序设计竞赛(正式赛)题解

比赛题目链接,可以继续提交代码: 2023年第六届广西大学生程序设计竞赛(正式赛) | 知乎:如何评价第六届广西大学生程序设计竞赛? 难度题号备注签到题A J K已给出题解和代码普通题B D E H已给出题解和代码中等题C G–难题F I L M–…

机器学习方法在生态经济学领域中的应用

查看原文>>>基于R语言机器学习方法在生态经济学领域中的实践技术 近年来,人工智能领域已经取得突破性进展,对经济社会各个领域都产生了重大影响,结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一&#xff0c…

moviepy快速切分视频并保存片段

文章目录 1、直接使用ffmepg2、使用moviepy本身 moviepy安装最新版本: pip install moviepy --pre --upgrade版本是v2.0.0.dev2。 有两种方法一种快速的: 1、直接使用ffmepg from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip ffmpeg…

Lecture 12 Discourse

目录 Discourse 语篇三个关键的语篇任务Discourse Segmentation 语篇分段Unsupervised Approaches 无监督方法Supervised Approaches 有监督方法有监督语篇分段器Discourse Analysis 语篇解析语篇解析RST: Discourse UnitsRST: Discourse RelationsNucleus vs. Satellite 核心 …

2022计算机系统期末

直接导入无图片,先不改了,不过图片都是原题目,不影响对答案。 计算机系统2022期末 本课程的复习请以知识点复习为重,全部内容共有大小280个知识点,都可能在期末考试出现,仅通过往年试卷复习是远远不够的&…

从小白到大神之路之学习运维第35天---第三阶段---mysql数据库之主从复制配置

第三阶段基础 时 间:2023年6月7日 参加人:全班人员 内 容: Mysql数据库之主从复制配置 目录 前提环境配置 MySQL 5.7 版本的主从复制配置步骤 主 库 1. 在主库上开启二进制日志记录功能 2. 在主库上创建一个用于从库访问的备份用户 3. 在主…