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

【说明】文章内容来自《机器学习——基于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 npdata_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.hqwc.cn/news/300988.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OPNET Modeler帮助文档的打开方式

前面有篇文章修改OPNET帮助文档的默认打开浏览器 & 给Edge浏览器配置IE Tab插件已经提到了打开OPNET Modeler打开帮助文档的方法,有时候打开时会显示如下。 界面中没有什么内容加载出来!我是在Google浏览器中打开的,其他的浏览器也是一样…

基于ssm演出人员与观众疫情信息管理系统论文

目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…

跟着LearnOpenGL学习11--材质

文章目录 一、材质二、设置材质三、光的属性四、不同的光源颜色 一、材质 在现实世界里,每个物体会对光产生不同的反应。 比如,钢制物体看起来通常会比陶土花瓶更闪闪发光,一个木头箱子也不会与一个钢制箱子反射同样程度的光。 有些物体反…

Vue3实战教程(快速入门)

Vue3实战教程(快速入门) 前言1.搭建脚手架1.1 创建项目1.2 清除多余文件,创建干净项目1.3 创建登录页面 2.创建404页面(引入sass)2.1 引入sass2.2 创建404页面 3.构建登录注册页面(引入element-plus&#x…

【数据结构】什么是二叉树?

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 📌二叉树的定义 📌二叉树的特点 📌特殊二叉树 📌二叉树的性质 📌二叉树的存储结构 📌二叉树…

如何进行快照管理

目录 快照管理 手动创建快照 自动创建快照 快照管理 快照管理 传统的物理服务器,为了确保服务器中数据的安全,需要你自行定制备份策略,如果备份到服务器本地,如果存储损坏,备份会同正常数据一起丢失。也就是说需要…

洛谷 P2367 语文成绩 刷题笔记

P2367 语文成绩 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 差分 令a[i]为b[i]数组的前缀和 a[n]b[1]b[2]b[3].....b[n]; a[n-1]b[1]b[2]b[3].....b[n-1]; 构造差分数组 b[i]a[i]-a[i-1]; 有什么好处 当我们想对a[l]--a[r]范围内所有数据加上一个数x 不必循环 for(i…

【数据保护】数据匿名的自定义NLP方法

自我介绍 做一个简单介绍,酒架年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【…

基于ssm学生考勤管理系统的设计与实现论文

目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…

IDEA报错:java: 无效的目标发行版: 17

出现这个问题是因为我们使用和配置的Java版本不正确,我们需要配置一个统一的Java版本,我们来一步步检查一下 1.检查pom文件 可以看到,我这里是1.8没问题,到下一步 2.检查项目构件的Java版本 项目使用的是Java1.8没问题 模块使…

云上安全责任共担模型

对于传统自建物理服务器模式,用户需要承担所有的安全责任,负责从物理基础设施到上层应用的所有层面的安全体系构建。 云服务器的安全责任确实与物理服务器不同,云上的安全性是一种责任共担模式,其中云服务器ECS的安全责任需要你&…

第二证券:我国股市涨跌幅限制是多少?

我国股市涨跌幅束缚是多少? 1、主板:新股上市后的前5个交易日不设价格涨跌幅束缚,第6个交易日起,涨跌幅束缚为10%。 2、创业板:新股上市后的前5个交易日没有价格涨跌幅束缚,第6个交易日起,涨跌…