决策树算法实战

本实战主要目标是讲解如何使用sklearn库来构造决策树,包括其中的一些参数的使用,以及参数调优对模型精确度的影响。

1. 数据处理

导入Pandas和Matplotlib两个库。

# 导入Pandas和Matplotlib两个库
%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd

此次实验没有CSV数据文件,我们采用sklearn模块中的内置数据集,直接加载内置的房价数据集,根据房子的价格和一些影响因素,来预测最终的结果。

from sklearn.datasets.california_housing import fetch_california_housing
housing = fetch_california_housing()
print(housing.DESCR)# 内置数据集

可以简单打印一下数据信息,具体代码与结果如图5-33所示。第一条代码中.shape表示数据的维度,输出的信息表示整个文件有8个特征及20640条数据。第二条代码表示打印数据集中的第一行数据信息。

2. 模型的建立

从sklearn中导入tree模块,在tree模块里可以用决策树分类或者回归,预测类别值或连续值都是可以的。使用sklearn分两步,第一步是将树模型实例化出来,传入参数max_depth控制树的最大深度。第二步是用实例出来的变量来进行训练,相当于构造一个树模型。其中,传入两个参数x,y,这里的x取数据集中的第6列和第7列,相当于指定某些特征来建模;y相当于label,即结果值。

# 实例化树模型
from sklearn import tree
print(housing.target)
dtr = tree.DecisionTreeRegressor(max_depth=2) # 控制深度
dtr.fit(housing.data[:,[6,7]],housing.target) # 取第6列和第7列

执行语句输出模型的参数,如图5-34所示,除了设定的参数,有些参数是默认的,一般情况下我们只需要调整部分参数即可。

3. 模型可视化

模型可视化显示需要借助第三方工具。首先要安装graphiviz,其官方网站地址是http://www.graphviz.org/,进入页面后单击Download按钮,根据计算机版本选择安装文件,安装后将bin目录下的路径添加到环境变量即可使用。

接下来要构造可视化树模型,代码结构差不多,唯一需要调整的是构造对象的变量名字,以及图中的特征名字,就是dataframe中用什么名字就指定那个名字,代码如下:

# 可视化构造树模型
dot_data = \
tree.export_graphviz(
    dtr,# 变量名
    out_file=None,
    feature_names=housing.feature_names[6:8],# 名字
    filled=True,
    impurity=False,
    rounded=True
)

另外,还需要安装一个pydotplus库,使用pip install pydotplus命令即可安装。把数据参数传进去并指定画图的颜色,代码如下:

import pydotplus
graph = pydotplus.graph_from_dot_data(dot_data)
graph.get_nodes()[7].set_fillcolor("#FFF2DD")
from IPython.display import Image
Image(graph.create_png())

结果如图5-35所示。如此就完成了决策树的可视化的过程。

所以说,调用Python的内置模块还是很方便的,不需要在cmd命令窗口上去进行一些操作,构造好的决策树图还可以保存到本地,方便查看,操作也很简单。

graph.write_png("dtr_white_backgroud.png")

本文节选自《机器学习实战(视频教学版)》,获出版社和作者授权发布。

《图神经网络基础、模型与应用实战(人工智能技术丛书)》(兰伟,叶进,朱晓姝)【摘要 书评 试读】- 京东图书 (jd.com)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

buuctf_RE

[WMCTF2020]easy_re 简单输入flag 但是下断点后,还没走几步就报错退出了。 确实没有打印的字符串 main函数也看不懂在干嘛 int __cdecl main(int argc, const char **argv, const char **envp) {__int64 v4; // r13char v5; // r12__int64 v6; // rax_QWORD *v7;…

english语法

从句:简单句连词 介词

maven部署到私服

方法一:网页上传 1、账号登录 用户名/密码 2、地址 http://自己的ip:自己的端口/nexus 3、查看Repositories列表,选择Public Repositories,确定待上传jar包不在私服中 4、选择3rd party仓库,点击Artifact Upload页签 5、GAV Definition选…

Aria2下载安装使用

这里写目录标题 下载Aria2 配置创建 aria2.conf 文件创建 aria2.session 文件 Aria2的使用基础使用多源下载多线程下载后台下载配置文件启动 AriaNg下载安装AriaNg配置AriaNg使用 Tracker 列表 aria2 是一款免费开源跨平台且不限速的多线程下载软件,其优点是速度快、…

安全阀检测周期:确定因素与操作流程详解

在工业生产中,安全阀扮演着至关重要的角色,其性能的稳定性和准确性直接关系到设备和系统的安全。为确保安全阀的正常运行和事故防范,对其进行定期检测显得尤为关键。 接下来,佰德将深入探讨安全阀检测周期相关的内容,…

前端 CSS 经典:多行文本擦除效果

前言:使用动画实现更改变量 --p,实现多行文本擦除效果,css 动画逻辑,什么样的动画是生效的,一定是一个数值类的 CSS 属性。--p 只是个变量,不是 CSS 属性,通过 Houdini API 使它变成一个属性。 …

后量子加密算法的数学原理

后量子加密算法是一类专为抵御量子计算机攻击而设计的加密算法。随着量子计算技术的迅速发展,传统的加密算法如RSA和椭圆曲线密码学在量子计算机面前变得脆弱,因此,开发能够在量子计算时代保持安全性的加密算法变得尤为重要。下面将详细介绍后…

【kubernetes】关于k8s集群如何将pod调度到指定node节点(亲和与反亲和等)

目录 一、调度约束 1.1K8S的 List-Watch 机制 ⭐⭐⭐⭐⭐ 1.1.1Pod 启动典型创建过程 二、调度过程 2.1Predicate(预选策略) 常见的算法 2.2priorities(优选策略)常见的算法 三、k8s将pod调度到指定node的方法 3.1指定…

【ARM+Codesys案例】基于全志T3+Codesys软PLC的3C点胶边缘控制解决方案:整合了运动控制、视觉、激光测高等技术

视觉精密点胶控制方案 针对直交型机构的平面点涂胶应用,基于CODESYS软件平台开发的一站式PC型控制器解决方案,包含运动控制器硬件和点胶应用软件。方案整合了运动控制、视觉、激光测高等技术,高效精密的控制胶水点涂于产品表面或内部&#x…

Linux查看设备信息命令

dmidecode | grep Product Name 查看grub版本号:rpm -qa | grep -i "grub" 客户端操作系统版本: cat /etc/issue cat /etc/redhat-release 处理器品牌及型号: less /proc/cpuinfo |grep model

瓦罗兰特国际服怎么注册账号 瓦罗兰特 无畏契约账号注册教程

瓦罗兰特国际服怎么注册账号 瓦罗兰特 无畏契约账号注册教程 瓦罗兰特作为拳头游戏开发的一款多人竞技第一人称射击游戏,自从2020年发布之后,热度持续升高,游戏采用5V5竞技模式,采用了传统FPS中游戏的类型,玩家们分为…

WorldSpace下的合批策略与ScreenSpace有什么区别

1)WorldSpace下的合批策略与ScreenSpace有什么区别 2)在iOS上用Metal取代OpenGL的多么 3)在动画蓝图中将两个或多个动画同时融合到同一个网格 4)Mipmap如何限定层级 这是第387篇UWA技术知识分享的推送,精选了UWA社区的…

PHP对接百度语音识别技术

PHP对接百度语音识别技术 引言 在目前的各种应用场景中,语音识别技术已经越来越常用,并且其应用场景正在不断扩大。 百度提供的语音识别服务允许用户通过简单的接口调用,将语音内容转换为文本。 本文将通过PHP语言集成百度的语音识别服务…

【链表】Leetcode 82. 删除排序链表中的重复元素 II【中等】

删除排序链表中的重复元素 II 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1: 输入:head [1,2,3,3,4,4,5] 输出:[1,2,5] 解题思路 由于链表…

2024年5月份架构师考试真题完整版

截至2024-5-28 19:24:14已全部收录完成 共75到选择题,5道案例题,4道论文题。题目顺序不分先后。 全网最全的2024年5月份架构师考试真题回忆版,包含答案和解析。 群友 疯狂程序员 花落无声 半夏 鲁迅-三战老兵(预备役) 本次必成 锦鲤附体 2024…

【启程Golang之旅】掌握Go语言数组基础概念与实际应用

欢迎来到Golang的世界!在当今快节奏的软件开发领域,选择一种高效、简洁的编程语言至关重要。而在这方面,Golang(又称Go)无疑是一个备受瞩目的选择。在本文中,带领您探索Golang的世界,一步步地了…

Gradle的学习

1.1 Gradle的优势 一款最新的,功能最强大的构建工具,用它逼格更高 使用Groovy或Kotlin代替XML,使用程序代替传统的XML配置,项目构建更灵活 丰富的第三方插件,让你随心所欲使用 完善Android,Java开发技术体系 1.2 …

深入解析数据库中的连接方法:四种关键技巧

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、连接方法的重要性 二、左连接(Left Join) 三、右连接&#xff…

C# yolov8 TensorRT Demo

C# yolov8 TensorRT Demo 目录 效果 说明 项目 代码 下载 效果 说明 环境 NVIDIA GeForce RTX 4060 Laptop GPU cuda12.1cudnn 8.8.1TensorRT-8.6.1.6 版本和我不一致的需要重新编译TensorRtExtern.dll,TensorRtExtern源码地址:https://githu…

【全开源】简单商城系统源码(PC/UniAPP)

提供PC版本、UniAPP版本(高级授权)、支持多规格商品、优惠券、积分兑换、快递鸟电子面单、支持移动端样式、统计报表等 提供全部前后台无加密源代码、数据库离线部署。 构建您的在线商店的基石 一、引言:为什么选择简单商城系统源码? 在数字化时代&am…