机器学习——决策树(三)

news2024/11/16 7:55:28

【说明】文章内容来自《机器学习——基于sklearn》,用于学习记录。若有争议联系删除。

1、案例一

决策树用于是否赖床问题。

采用决策树进行分类,要经过数据采集、特征向量化、模型训练和决策树可视化4个步骤。

赖床数据链接:https://pan.baidu.com/s/1mi7Is8YyGVbtrkxnHytlVA 
提取码:cndl

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

#pandas读取CSV文件,header= None,表示不将首行作为列标签
data = pd.read_csv('laichuang.csv', header = None)

#指定列
data.columns = ['season', 'after 8:00', 'wind', 'lay bed']
vec = DictVectorizer(sparse = False)#对字典进行向量化,FALSE表示不产生稀疏矩阵
feature = data[['season', 'after 8:00', 'wind']]
x_train = vec.fit_transform(feature.to_dict('records'))
#打印各个变量
print('show feature\n', feature)
print('show vector\n', x_train)
print('show vector name\n', vec.get_feature_names_out())

【运行结果】

#划分数据集
x_trian, x_test, y_train, y_test = train_test_split(x_train, feature, test_size = 0.3)
#训练决策树
clf = tree.DecisionTreeClassifier(criterion = 'gini')
clf.fit(x_train, feature)
#决策树可视化,保存DOT文件
with open('d:lay.dot', 'w') as f:
    f = tree.export_graphviz(clf, out_file = f, feature_names = vec.get_feature_names_out())

【运行结果】

2、决策树可视化

2.1 Graphviz

        Graphviz是一款来自AT&T Research实验窒和Lucent Bell 实验室的开源的可视化图形工具,可以绘制结构化的图形网络,支持多种格式输出。Graphviz将 Python 代码生成的dot 脚本解析为树状图。
Graphviz的安装及配置步骤如下:
1:访问网址http://www.graphviz.org/,下载Graphviz 软件安装包graphviz

2:双击该安装包,运行安装程序,将Graphviz安装到C盘,选择添加到环境变量中。



3:使用pip安装 graphviz,命令如下:
pip install graphviz

2.2 DOT

        DOT是一种文本图形描述语言,用于描述图表的组成元素及其关系。DOT 文件通常以.gv或.dot为扩展名。DOT 与 Graphviz的关系可以类比 HTML 和浏览器的关系。打开.cmd窗口,进人out.dot所在目录,此处为D盘根目录,运行dot命令,如图所示。

dot out.dot - T paf -o out.pdf

打开PDF文件显示。

3、案例二

波士顿房价

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error
import pandas as pd
import numpy as np

data_url = "http://lib.stat.cmu.edu/datasets/boston"
raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)
data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
target = raw_df.values[1::2, 2]
x = data
y = target
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.25, 
                                                    random_state = 33)
#特征预处理,对训练数据和测试数据标准化
ss_x = StandardScaler()
x_train = ss_x.fit_transform(x_train)
x_test = ss_x.transform(x_test)
ss_y = StandardScaler()
y_train = ss_y.fit_transform(y_train.reshape(-1,1))
y_test = ss_y.transform(y_test.reshape(-1,1))
#使用回归树进行训练和预测,初始化KNN回归模型,使用平均回归算法进行预测
dtr = DecisionTreeRegressor()
#训练
dtr.fit(x_train, y_train)
#预测,保存预测结果
dtr_y_predict = dtr.predict(x_test)
#模型评估
print('回归树的默认评估值为:', dtr.score(x_test, y_test))
print('回归树的R_squared值为:', r2_score(y_test, dtr_y_predict))
# print('回归树的均方误差为:',mean_squared_error(ss_y.inverse_transform(y_test),
#                                       ss_y.inverse_transform(dtr_y_predict)))
# print('回归树的平均绝对误差为:', mean_absolute_error(ss_y.inverse_transform(y_test),
#                                           ss_y.inverse_transform(dtr_y_predict)))

【运行结果】

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

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

相关文章

SLAM算法与工程实践——相机篇:RealSense D435使用(2)

SLAM算法与工程实践系列文章 下面是SLAM算法与工程实践系列文章的总链接,本人发表这个系列的文章链接均收录于此 SLAM算法与工程实践系列文章链接 下面是专栏地址: SLAM算法与工程实践系列专栏 文章目录 SLAM算法与工程实践系列文章SLAM算法与工程实践…

基于ChatGpt,Java,SpringBoot,Vue,Milvus向量数据库的定制化聊天Web demo

customized chat GitHub - bigcyy/customized-chatgpt: 基于ChatGpt,Java,SpringBoot,Vue,Milvus向量数据库的定制化聊天Web demo 简介 基于ChatGpt,Java,SpringBoot,Vue,Milvus向…

基于SpringBoot+thymeleaf+layui 宠物医院预约管理系统(Java毕业设计有文档)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…

1 - 数据库服务概述 | 构建MySQL服务 | 数据库基本管理 | MySQL基本类型

数据库服务概述 | 构建MySQL服务 | 数据库基本管理 | MySQL基本类型 数据库服务概述构建mysql服务安装mysql软件包连接mysql服务器 修改密码 密码管理修改密码策略(需要登陆)破解数据库管理员root密码(数据库服务处于运行状态但是root忘记了密…

Android ImageView如何使用.svg格式图片

我们知道imageview常用的图片格式是.jpg/.png或者drawable里的部分.xml文件。但有时UI会给过来.svg格式的文件,下面讲解如何使用.svg格式图片文件 step1:AS点击File -> New -> Vector Asset step2:选中要使用的.svg文件,按需要命名和调整&#x…

信息泄露总结

文章目录 一、备份文件下载1.1 网站源码1.2 bak文件泄露1.3 vim缓存1.4 .DS_Store 二、Git泄露2.1 git知识点2.1 log2.2 stash 三、SVN泄露3.1 SVN简介3.2 SVN的文件3.3 SVN利用 四、Hg泄露 一、备份文件下载 1.1 网站源码 常见的网站源码备份文件后缀: tartar.gz…

中国首个车路云一体化研究中心成立,将如何改变自动驾驶?

图片|electronicsmedia.info ©⾃象限原创 作者丨钱诚 编辑丨程心 自动驾驶正在迎来一场新的变局。 只是这一次,搅动整个产业的,是各种政策的密集落地。 2023年10月,工信部提出要开展城市级“车路云一体化”示范&#x…

【机器学习】西瓜书第6章支持向量机课后习题6.1参考答案

【机器学习】西瓜书学习心得及课后习题参考答案—第6章支持向量机 1.试证明样本空间中任意点x到超平面(w,b)的距离为式(6.2)。 首先,直观解释二维空间内点到直线的距离: 由平面向量的有关知识,可得: 超平面的法向量为 w w w&am…

uniapp的分包使用记录

UniApp的分包是一种将应用代码划分为多个包的技术。分包的核心思想是将不同部分的代码划分为不同的包,按需加载,从而提高应用性能。使用UniApp的条件编译功能,开发人员可以根据需要将代码划分为多个包。每个包都包含一组页面和组件&#xff0…

SQL delete不走索引

由于业务变迁,合规要求,我们需要删除大量非本公司的数据,涉及到上百张表,几个T的数据清洗。我们的做法是先从基础数据出发,将要删除的数据id收集到一张表,然后再由上往下删除子表,多线程并发处理。 我们使用的是阿里的polardb,完全兼容mysql协议,5.7版本,RC隔离级别。…

透过许战海矩阵洞察安记食品增长战略

引言:安记食品如果想实施增长战略,建议深耕招牌产品,走向全国市场,目前招牌产品咖哩和复合调味粉市场空间没有被全面释放出来,需要科学的产品战略作为支撑。安记食品选择功能性产品方向是正确的,但“功能性”需要一个大品类作为载体,牛奶,饮料是最大的载…

解密负载均衡:如何平衡系统负载(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

2023边缘计算年度领航企业丨突破边界,重塑数字未来

边缘计算作为一种新兴的计算模式,正在改变着数字世界的格局。近日,备受瞩目的第八届全球边缘计算大会在上海拉开帷幕,为业界呈现了一场技术与创新的盛宴。本次大会,我们隆重推出了“边缘计算年度盛典”,旨在表彰那些为…

【C语言】自定义类型:结构体深入解析(三)结构体实现位段最终篇

文章目录 📝前言🌠什么是位段?🌉 位段的内存分配🌉VS怎么开辟位段空间呢?🌉位段的跨平台问题🌠 位段的应⽤🌠位段使⽤的注意事项🚩总结 📝前言 本…

Hadoop安装笔记_单机/伪分布式配置_Hadoop3.1.3——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

将下发的ds_db01.sql数据库文件放置mysql中 12、编写Scala代码,使用Spark将MySQL的ds_db01库中表user_info的全量数据抽取到Hive的ods库中表user_info。字段名称、类型不变,同时添加静态分区,分区字段为etl_date,类型为String&am…

WPF项目创建HTTP WEB服务,不使用IIS业务 WPF桌面程序WebApi WPF 集成WebApi C# 创建HTTP Web API服务

在C# WPF应用程序中直接创建HTTP服务或WebAPI服务有以下优点: 自托管服务: 简化部署:无需依赖外部服务器或IIS(Internet Information Services),可以直接在应用程序内部启动和运行Web服务。 集成紧密&…

elasticsearch操作索引库

目录 一、创建索引库 二、查询索引库 三、删除索引库 四、修改索引库 一、创建索引库 ES中通过Restful请求操作索引库、文档。请求内容用DSL语句来表示。 创建索引库和mapping的DSL语法及示例如下: 二、查询索引库 查看索引库语法 GET /索引库名 三、…

vue3+elementPlus:el-drawer新增修改弹窗复用

在el-drawer的属性里设置:title属性&#xff0c;和重置函数 //html<!-- 弹窗 --><el-drawerv-model"drawer":title"title":size"505":direction"direction":before-close"handleClose"><el-formlabel-posit…

ios环境搭建_xcode安装及运行源码

目录 1 xcode 介绍 2 xcode 下载 3 xocde 运行ios源码 1 xcode 介绍 Xcode 是运行在操作系统Mac OS X上的集成开发工具&#xff08;IDE&#xff09;&#xff0c;由Apple Inc开发。Xcode是开发 macOS 和 iOS 应用程序的最快捷的方式。Xcode 具有统一的用户界面设计&#xff0…

Apache Flink连载(十八):Flink On Yarn运行原理及环境准备

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. Flink On Yarn运行原理…