机器学习——决策树(三)
【说明】文章内容来自《机器学习——基于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)))
【运行结果】
![]()
相关文章:
机器学习——决策树(三)
【说明】文章内容来自《机器学习——基于sklearn》,用于学习记录。若有争议联系删除。 1、案例一 决策树用于是否赖床问题。 采用决策树进行分类,要经过数据采集、特征向量化、模型训练和决策树可视化4个步骤。 赖床数据链接:https://pan…...
模型量化之AWQ和GPTQ
什么是模型量化 模型量化(Model Quantization)是一种通过减少模型参数表示的位数来降低模型计算和存储开销的技术。一般来说,模型参数在深度学习模型中以浮点数(例如32位浮点数)的形式存储,而模型量化可以…...
一个简单的 HTTP 请求和响应服务——httpbin
拉取镜像 docker pull kennethreitz/httpbin:latest 查看本地是否存在存在镜像 docker images | grep kennethreitz/httpbin:latest 创建 deployment,指定镜像 apiVersion: apps/v1 kind: Deployment metadata:labels:app: httpbinname: mm-httpbinnamespace: mm-…...
2024黑龙江省职业院校技能大赛暨国赛选拔赛应用软件系统开发赛项(高职组)赛题第3套
2024黑龙江省职业院校技能大赛暨国赛选拔赛 应用软件系统开发赛项(高职组) 赛题第3套 目录: 需要竞赛源码资料可以私信博主。 竞赛说明 模块一:系统需求分析 任务1:制造执行MES—质量管理—来料检验(…...
云原生Kubernetes系列 | Kubernetes Secret及ConfigMap
云原生Kubernetes系列 | Kubernetes Secret及Configmap 1. Secret及Configmap使用背景简介2. Secret2.1. Secret创建方式2.1.1. 命令行方式2.1.2. 文件方式2.1.3. 变量方式2.1.4. YAML文件方式2.2. Secret使用方式2.2.1. 用于传递配置文件2.2.3. 用于传递变量3. ConfigMap1. Se…...
dev express 15.2图表绘制性能问题
dev express 15.2 绘制曲线 前端代码 <dxc:ChartControl Grid.Row"1"><dxc:XYDiagram2D EnableAxisXNavigation"True"><dxc:LineSeries2D x:Name"series" CrosshairLabelPattern"{}{A} : {V:F2}"/></dxc:XYDi…...
单链表的创建,插入及删除(更新ing)
1.单链表创建 ptr为头指针,指向头结点地址,即该指针变量的值为头结点地址; mov为一个辅助指针,用于将链表尾节点的指针域next指向新增节点的地址. search为一个辅助指针,用于遍历链表各节点地址,打印各节…...
C#/WPF 播放音频文件
C#播放音频文件的方式: 播放系统事件声音使用System.Media.SoundPlayer播放wav使用MCI Command String多媒体设备程序接口播放mp3,wav,avi等使用WindowsMediaPlayer的COM组件来播放(可视化)使用DirectX播放音频文件使用Speech播放(朗读器&am…...
如何使用宝塔面板+Discuz+cpolar内网穿透工具搭建可远程访问论坛服务
文章目录 前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Discuz! Board(以下简称 Discuz!)是一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上&a…...
【HBase】——简介
1 HBase 定义 Apache HBase™ 是以 hdfs 为数据存储的,一种分布式、可扩展的 NoSQL 数据库。 2 HBase 数据模型 • HBase 的设计理念依据 Google 的 BigTable 论文,论文中对于数据模型的首句介绍。 Bigtable 是一个稀疏的、分布式的、持久的多维排序 m…...
JAVA 有关PDF文件和图片文件合并并生产一个PDF
情景: 1.文件列表包含多个图片和PDF时需要对文件进行合并 2.合并时保持文件顺序 开淦: 一、导入POM <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</ve…...
八股文打卡day10——计算机网络(10)
面试题:HTTP1.1和HTTP2.0的区别? 我的回答: 1.多路复用:HTTP1.1每次请求响应一次都得建立一次连接,HTTP1.1引入了持久连接Connection:Keep-Alive,可以建立一次连接,进行多次请求响…...
Spring Boot学习:Flyway详解
Flyway Flyway 是一款开源的数据库版本管理工具,用于管理和自动化数据库结构的变更。它可以跟踪和管理数据库的版本控制,并在应用程序启动时自动执行升级或回滚操作。 使用Flyway,你可以将数据库的变更以可重复且可控的方式应用到不同环境中…...
Spark编程实验三:Spark SQL编程
目录 一、目的与要求 二、实验内容 三、实验步骤 1、Spark SQL基本操作 2、编程实现将RDD转换为DataFrame 3、编程实现利用DataFrame读写MySQL的数据 四、结果分析与实验体会 一、目的与要求 1、通过实验掌握Spark SQL的基本编程方法; 2、熟悉RDD到DataFram…...
文献研读|Prompt窃取与保护综述
本文介绍与「Prompt窃取与保护」相关的几篇工作。 目录 1. Prompt Stealing Attacks Against Text-to-Image Generation Models(PromptStealer)2. Hard Prompts Made Easy: Gradient-Based Discrete Optimization for Prompt Tuning and Discovery&#…...
cfa一级考生复习经验分享系列(十四)
首先说一下自己的背景,一个和金融没有半毛钱关系的数据分析师,之前考出了FRM。这次用一个半月突击12月的1级考试拿到了9A1B的成绩,纯属运气。以下纯属经(chě)验(dn),请看看就好&…...
vue本地缓存搜索记录(最多4条)
核心代码 //保存到搜索历史,最多存四个 item.name和item.code格式为:塞力斯000001var history uni.getStorageSync(history) || [];console.log("history", history)var index history.findIndex((items) > {return item.name items.nam…...
Linux创建Macvlan网络
最近在看Docker的网络,测试Macvlan部分时,发现Docker创建Macvlan与预期测试结果不一样。所以查阅了Linux下配置Macvlan,记录如下。 参考 1.Linux Macvlan 2.图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN 3.创建ma…...
从企业级负载均衡到云原生,深入解读F5
上世纪九十年代,Internet快速发展催生了大量在线网站,Web访问量迅速提升。在互联网泡沫破灭前,这个领域基本是围绕如何对Web网站进行负载均衡与优化。从1997年F5发布了BIG-IP,到快速地形成完整ADC产品线,企业级负载均衡…...
什么是redis雪崩
Redis雪崩是指在使用Redis作为缓存数据库时,由于某种原因导致Redis服务器不可用或性能严重下降,从而导致大量的请求集中到数据库服务器上,甚至直接导致数据库服务器崩溃。 当Redis服务器出现雪崩时,原本应该被缓存的数据无法从缓…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
