【Pytorch】新手入门:基于sklearn实现鸢尾花数据集的加载
【Pytorch】新手入门:基于sklearn实现鸢尾花数据集的加载

🌈 个人主页:高斯小哥
🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~
💡 创作高质量博文(平均质量分92+),分享更多关于深度学习、PyTorch、Python领域的优质内容!(希望得到您的关注~)
🌵文章目录🌵
- 🌸一、鸢尾花数据集简介
- 📚二、基于Python加载鸢尾花数据集
- 🎨三、探索鸢尾花数据集
- 🔍四、使用鸢尾花数据集进行模型训练
- 🛠️五、优化模型性能
- 🛠️六、使用鸢尾花数据集进行模型选择
- 📚七、总结与进一步学习
🌸一、鸢尾花数据集简介
鸢(yuān)尾花数据集(Iris dataset)是机器学习和统计学中常用的一个经典数据集,主要用于分类任务。它包含了三类不同的鸢尾花(Setosa、Versicolour和Virginica)的四个特征,分别是花萼长度、花萼宽度、花瓣长度和花瓣宽度。这些特征都是连续型数值变量,使得它非常适合用于演示和测试分类算法。
这个数据集非常受欢迎,因为它的简单性和易理解性。同时,由于其特征的多样性和类别之间的可区分性,它成为了很多机器学习初学者和研究者的首选数据集。
📚二、基于Python加载鸢尾花数据集
在Python中,我们可以使用sklearn库中的datasets模块来轻松加载鸢尾花数据集。sklearn是一个强大的机器学习库,提供了大量的数据集和工具,方便我们进行机器学习和数据分析。
下面是一个简单的示例代码,演示如何加载鸢尾花数据集:
from sklearn import datasets# 加载鸢尾花数据集
iris = datasets.load_iris()# 打印数据集描述
# print(iris.DESCR) # 可选# 获取特征数据
X = iris.data# 获取目标标签
y = iris.target# 打印特征数据的前5行
print("特征数据前5行:\n", X[:5])# 打印目标标签的前5个
print("目标标签前5个:\n", y[:5])# 获取特征名称
feature_names = iris.feature_names
print("特征名称:\n", feature_names)# 获取目标标签的名称
target_names = iris.target_names
print("目标标签名称:\n", target_names)
输出:
特征数据前5行:[[5.1 3.5 1.4 0.2][4.9 3. 1.4 0.2][4.7 3.2 1.3 0.2][4.6 3.1 1.5 0.2][5. 3.6 1.4 0.2]]
目标标签前5个:[0 0 0 0 0]
特征名称:['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
目标标签名称:['setosa' 'versicolor' 'virginica']
在这个例子中,我们首先导入了sklearn.datasets模块,然后调用load_iris()函数加载鸢尾花数据集。加载后的数据集存储在iris对象中,我们可以通过这个对象访问数据集的各个部分。
通过iris.data,我们可以获取特征数据,它是一个形状为(150, 4)的NumPy数组,其中每一行代表一个样本,每一列代表一个特征。
通过iris.target,我们可以获取目标标签,它是一个长度为150的一维数组,其中每个元素表示对应样本的类别标签(0、1或2)。
此外,iris.DESCR包含了数据集的详细描述,iris.feature_names包含了特征名称,iris.target_names包含了目标标签的名称。
🎨三、探索鸢尾花数据集
在加载了鸢尾花数据集之后,我们可以进行一些基本的探索性分析,以了解数据的分布和特性。
例如,我们可以使用matplotlib库来绘制特征之间的散点图,观察不同类别之间的分布关系:
# 导入必要的库
import matplotlib.pyplot as plt # 导入matplotlib库,用于绘图
import seaborn as sns # 导入seaborn库,基于matplotlib的图形可视化Python库
import pandas as pd # 导入pandas库,用于数据处理和分析
from sklearn import datasets # 从sklearn库中导入datasets模块,用于加载数据集# 加载鸢尾花数据集
iris = datasets.load_iris() # 使用datasets模块的load_iris函数加载鸢尾花数据集# 将特征和标签转换为DataFrame
df_iris = pd.DataFrame(iris.data, columns=iris.feature_names) # 将特征数据转换为pandas的DataFrame,并设置列名为鸢尾花的特征名称
df_iris['target'] = pd.Series(iris.target) # 将标签数据转换为pandas的Series,并添加到DataFrame中作为新列'target'# 将标签转换为类别名称,以便在图中显示
df_iris['target'] = df_iris['target'].map({0: iris.target_names[0], 1: iris.target_names[1], 2: iris.target_names[2]})
# 使用map函数将标签(整数)映射为实际的类别名称(字符串),使得在图中显示时更加直观# 绘制特征之间的散点图
sns.pairplot(df_iris, hue="target", palette="husl", vars=iris.feature_names, diag_kind="kde")
# 使用seaborn的pairplot函数绘制特征之间的散点图
# hue参数指定根据哪一列对数据进行着色,这里根据'target'列(即类别)
# palette参数指定着色方案,这里使用"husl"方案
# vars参数指定要绘制的特征列,这里使用iris数据集中的所有特征名称
# diag_kind参数指定对角线子图的类型,这里使用"kde"表示核密度估计图plt.show() # 显示绘制的图形
以上代码使用Python中的matplotlib和seaborn库来可视化鸢尾花数据集的特征和标签。鸢尾花数据集是一个经典的小型数据集,常用于分类算法的入门和测试。它包含了三类鸢尾花(Setosa、Versicolour、Virginica)的四个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度)的测量值以及对应的类别标签。
首先,代码通过datasets.load_iris()函数加载了鸢尾花数据集,并将特征和标签转换为pandas DataFrame格式,以便后续的数据处理和可视化。然后,代码将标签(整数形式)转换为实际的类别名称,使得在图中显示时更加直观。
接下来,代码使用seaborn的pairplot函数绘制了特征之间的散点图,并根据类别标签对点进行着色。通过对角线子图展示的是每个特征的核密度估计图,这有助于了解每个特征的分布情况。
最后,通过调用plt.show()函数,代码显示了绘制的图形:

🔍四、使用鸢尾花数据集进行模型训练
加载和探索了鸢尾花数据集之后,我们可以开始使用它来进行模型的训练和测试。以下是一个简单的例子,展示如何使用鸢尾花数据集训练一个支持向量机(SVM)分类器:
from sklearn import svm
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn import datasets# 加载鸢尾花数据集
iris = datasets.load_iris()# 打印数据集描述
# print(iris.DESCR) # 可选# 获取特征数据
X = iris.data# 获取目标标签
y = iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 创建SVM分类器
clf = svm.SVC(kernel='linear') # 线性核函数# 训练模型
clf.fit(X_train, y_train)# 预测测试集
y_pred = clf.predict(X_test)# 打印分类报告
print(classification_report(y_test, y_pred, target_names=iris.target_names))
输出:
precision recall f1-score supportsetosa 1.00 1.00 1.00 19versicolor 1.00 1.00 1.00 13virginica 1.00 1.00 1.00 13accuracy 1.00 45macro avg 1.00 1.00 1.00 45
weighted avg 1.00 1.00 1.00 45
在这个例子中,我们首先使用train_test_split函数将数据集划分为训练集和测试集。然后,我们创建了一个SVM分类器,并使用训练集对其进行训练。接着,我们使用训练好的模型对测试集进行预测,并最后打印出分类报告以评估模型的性能。
分类报告中的精确度、召回率、F1值等指标,能够为我们提供关于模型在不同类别上的表现信息。这些指标有助于我们了解模型的优点和可能存在的问题,从而指导我们进行模型的优化。
🛠️五、优化模型性能
当我们得到初始的分类结果后,通常需要对模型进行优化以提高其性能。优化模型性能的方法有很多,包括但不限于调整模型参数、使用不同的模型、进行特征选择或特征工程等。
例如,在上面的SVM例子中,我们可以尝试改变SVM的核函数,如使用径向基函数(RBF)核而不是线性核,来查看是否能获得更好的性能。我们还可以尝试调整正则化参数C,以控制模型对误差的容忍度。
此外,我们还可以考虑对数据进行标准化或归一化,以使特征之间的尺度更加一致,从而可能提高模型的性能。
🛠️六、使用鸢尾花数据集进行模型选择
在机器学习中,我们经常需要在不同的模型之间进行选择,以找到最适合我们数据的模型。鸢尾花数据集为我们提供了一个很好的平台来进行模型选择和比较。
我们可以使用交叉验证等技术来评估不同模型在鸢尾花数据集上的性能,并选择性能最好的模型。例如,我们可以比较SVM、决策树、随机森林、K近邻等模型在鸢尾花数据集上的表现,并选择最适合的模型。
📚七、总结与进一步学习
通过本博客的学习,我们了解了鸢尾花数据集的基本信息和加载方法,学习了如何探索和使用鸢尾花数据集进行模型训练和评估,以及如何进行模型优化和选择。
鸢尾花数据集虽然简单,但它包含了许多机器学习的基础概念和方法。通过实践这些方法和概念,我们可以逐渐积累机器学习的知识和经验,为进一步学习更复杂的模型和算法打下基础。
希望本博客对你有所帮助,祝你学习愉快,收获满满!#鸢尾花数据集 #Python机器学习 #SVM分类器 #模型优化与选择
相关文章:
【Pytorch】新手入门:基于sklearn实现鸢尾花数据集的加载
【Pytorch】新手入门:基于sklearn实现鸢尾花数据集的加载 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望…...
maven项目引入私有jar,并打包到java.jar中
私有jar存放位置 maven依赖 <dependency><groupId>com.hikvision.ga</groupId><artifactId>artemis-http-client</artifactId><version>1.1.10</version><scope>system</scope><systemPath>${project.basedir}/s…...
Django中的Cookie和Session
文章目录 cookie是什么Django中如何使用cookieCookie使用示例session是什么Django中如何使用会话sessionSession使用示例小结 HTTP协议本身是”无状态”的,在一次请求和下一次请求之间没有任何状态保持,服务器无法识别来自同一用户的连续请求。有了cooki…...
Git-安装与使用(快速上手图文教程)
Git-安装与使用(快速上手图文教程) - 知乎 克隆: 首先你进去你要存放代码的位置,比如将代码存放到D盘,然后在D盘中右键,点击Git Bash Here,就是说本地仓库要在D盘建立。然后出现git 命令行界面…...
VBA_NZ系列工具NZ02:VBA读取PDF使用说明
我的教程一共九套及VBA汉英手册一部,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到数据库,到字典,到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑,这么多知识点该如何组织…...
如何在paddlehub库中找到paddlehub.Module()所在的位置
要在PaddleHub库中找到paddlehub.Module()的位置,您可以通过以下步骤在PaddleHub库的源代码中进行查找: 1.确定PaddleHub库的安装位置:首先,确定您安装PaddleHub库的位置。通常,PaddleHub库会被安装在Python的site-pa…...
创建旅游景点图数据库Neo4J技术验证
文章目录 创建旅游景点图数据库Neo4J技术验证写在前面基础数据建库python3源代码KG效果KG入库效率优化方案PostGreSQL建库 创建旅游景点图数据库Neo4J技术验证 写在前面 本章主要实践内容: (1)neo4j知识图谱库建库。使用导航poi中的公园、景…...
Docker一键部署WordPress
使用Docker安装WordPress相对传统安装方式更加便捷高效,因为它可以快速创建一个包含所有必要组件(Web服务器、PHP和MySQL数据库)的独立容器环境。下面是一个简化的步骤说明如何使用Docker和Docker Compose安装WordPress: 一 安装…...
C++的类与对象(五):赋值运算符重载与日期类的实现
目录 比较两个日期对象 运算符重载 赋值运算符重载 连续赋值 日期类的实现 Date.h文件 Date.cpp文件 Test.cpp文件 const成员 取地址及const取地址操作符重载 比较两个日期对象 问题描述:内置类型可直接用运算符比较,自定义类型的对象是多个…...
【uni-app小程序开发】实现一个背景色渐变的滑动条slider
先直接附上背景色渐变的滑动条slider uni-module插件地址:https://ext.dcloud.net.cn/plugin?id16841 最近做的一个用uni-appvue2开发的微信小程序项目中要实现一个滑动进度控制条,如下图所示: 1. 滑动条需要渐变背景色 2. 滑块的背景色需…...
Claude3横空出世:颠覆GPT-4,Anthropic与亚马逊云科技共启AI新时代
✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...
【AI视野·今日NLP 自然语言处理论文速览 第八十三期】Wed, 6 Mar 2024
AI视野今日CS.NLP 自然语言处理论文速览 Wed, 6 Mar 2024 Totally 74 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers MAGID: An Automated Pipeline for Generating Synthetic Multi-modal Datasets Authors Hossein Aboutalebi, …...
【AI视野·今日Robot 机器人论文速览 第八十二期】Tue, 5 Mar 2024
AI视野今日CS.Robotics 机器人学论文速览 Tue, 5 Mar 2024 Totally 63 papers 👉上期速览✈更多精彩请移步主页 Interesting: 📚双臂机器人拧瓶盖, (from 伯克利) website: https://toruowo.github.io/bimanual-twist 📚水下抓取器, (from …...
流量分析-webshell管理工具
文章目录 CSCS的工作原理CS流量特征 菜刀phpJSPASP 蚁剑冰蝎哥斯拉 对于常见的webshell管理工具有中国菜刀,蚁剑,冰蝎,哥斯拉。同时还有渗透工具cobaltstrike(CS)。 CS CobaltStrike有控制端,被控端,服务端。(相当于黑…...
备考2025年AMC8数学竞赛:吃透2000-2024年600道AMC8真题就够
我们继续来随机看五道AMC8的真题和解析,根据实践经验,对于想了解或者加AMC8美国数学竞赛的孩子来说,吃透AMC8历年真题是备考最科学、最有效的方法之一。 即使不参加AMC8竞赛,吃透了历年真题600道和背后的知识体系,那么…...
基于鹦鹉优化算法(Parrot optimizer,PO)的无人机三维路径规划(提供MATLAB代码)
一、无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化飞行…...
linux Shell 命令行-02-var 变量
拓展阅读 linux Shell 命令行-00-intro 入门介绍 linux Shell 命令行-02-var 变量 linux Shell 命令行-03-array 数组 linux Shell 命令行-04-operator 操作符 linux Shell 命令行-05-test 验证是否符合条件 linux Shell 命令行-06-flow control 流程控制 linux Shell 命…...
C#MQTT编程10--MQTT项目应用--工业数据上云
1、文章回顾 这个系列文章已经完成了9个内容,由浅入深地分析了MQTT协议的报文结构,并且通过一个有效的案例让伙伴们完全理解理论并应用到实际项目中,这节继续上马一个项目应用,作为本系列的结束,奉献给伙伴们&#x…...
exceljs解析和生成excel文件
安装 npm install exceljs解析excel 通过 Workbook 的 readFile 方法可以拿到workbook对象, workbook对象包含的概念有 worksheet(工作表) --> row(行) --> cell(单元格).于是可以通过依次遍历 worksheet, row, cell来拿到单元格的数据直接通过 worksheet.getSheetValue…...
HCIP —— BGP 路径属性 (上)
目录 BGP 路径属性 1.优选Preferred-Value属性值最大的路由 2.优选Local-preference 属性数值大的路由 3.本地始发的BGP路由优先于其他对等体处学习到的路由。 4..优选AS_PATH属性值最短的路由 BGP 路径属性 BGP的路由选路是存在优选规则的,下图为华为官网提供…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...
rknn toolkit2搭建和推理
安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
js 设置3秒后执行
如何在JavaScript中延迟3秒执行操作 在JavaScript中,要设置一个操作在指定延迟后(例如3秒)执行,可以使用 setTimeout 函数。setTimeout 是JavaScript的核心计时器方法,它接受两个参数: 要执行的函数&…...
