首页 分享 深度学习鸢尾花分类实验报告 鸢尾花实验目的

深度学习鸢尾花分类实验报告 鸢尾花实验目的

来源:花匠小妙招 时间:2024-12-31 21:22

机器学习 鸢尾花分类的原理和实现(一)

前言: 鸢尾花数据集是机器学习中的经典小规模数据集。通过查阅资料和视频进行学习,将整个实验的学习心得和实验过程分享,希望对喜爱机器学习并入门的新手提供帮助,同时也鞭策自己稳步向前。本文主要分为“实验前期的知识储备,实验过程的重要实现,实验结束的学习总结”三部分,限于文章篇幅,后两部分内容将在后边的博文中更新…

实验要求:利用逻辑回归进行鸢尾花的分类

实验目的

遵循并理解完整的机器学习过程对机器学习原理和相关术语有基本的了解了解评估机器学习模型的基本过程

实验步骤

数据预处理:原始数据集中标签为字符串,需将其装换成数字。设置学习率:利用训练集训练相关模型。在测试集上进行测试:计算模型准确度。

工具/平台
工具:python、java等语言。
建议:可使用TensorFlow(或Pytorch)等框架。

要求
1)可运行代码+运行结果;
2)成功率计算方式:性别预测正确的鸢尾花数量/所有测试集的数据数量,要求预测成功率在70%以上;

参考资源
代码:logistic_regression.py
数据集:数据包括花萼长度、花萼宽度、花瓣长度和花瓣宽度等5个属性。
训练集:iris_train.data
测试集:iris_test.data

一、实验前期的知识储备

鸢尾花数据集介绍

lris 数据集是常用的分类实验数据集,由Fisher在1936年收集整理,包含四个特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,特征值都为正浮点数,单位为厘米。目标值为鸢尾花的三个分类:山鸢尾、杂色鸢尾,维吉尼亚鸢尾。

scikit-learn数据集API的使用

sklearn 包不仅有很多机器学习的算法,也自带了许多经典的数据集,鸢尾花数据集就是其中之一
sklearn.database:加载流行数据集:
datasets.load_():获取小规模数据集,数据包含在datasets里
datasets.fetch_(data.home=None):获取大规模数据集,需要从网络上下载,函数的第一个参数是data_done,表示数据集下载的目录,默认是-/scikit_learn_data/

sklearn提供的常用数据集

a. 自带的小规模数据集:鸢尾花数据集,手写数字数据集等
b. 可在线下载的数据集(一般规模较大)
c. 计算机生成的数据集
d. svmlight/libsvm格式的数据集:sklearn.datasets.load_svmlight_file(…)
e. data.org在线下载获取的数据集:sklearn.datasets.fetch_mldata(…)
更多详细的介绍请点击这里查阅了解

sklearn小规模数据集的获取

from sklearn.datasets.load._iris():加载并返回鸢尾花数据集:

在pip3 install那个命令时,已经安装好,选择即可,可点击参考我的上一篇分享

array里边的四列分别对应的是花瓣的长度、宽度、花萼的长度、宽度

sklearn大规模数据集的获取

sklearn提供了该数据的接口:sklearn.datasets.fetch_20newsgroups
根据sklearn文档的描述,此方法的参数设置如下:

下边是获取新闻数据集合的演示:

sklearn数据集返回值

load 和 fetch 返回的数据类型 datasets.base.Bunch (字典格式)
(Bunch 虽然是字典格式,但可以通过 ‘点’ 的形式把属性点出来)
data:特征数据数组(特征值输入),是【n_samples*n_feature】的二维数组
target:标签数组(目标输出),是n_samples的以为数组
feature_names:特征名称
target_names:标签名称
DESCR:数据描述

如下图所示

鸢尾花数据可视化

通过创建一些图,以查看不同类别是如何通过特征进行区分的。在理想情况下,标签类将由一个或多个特征对完美分割,在现实世界中,这种理想情况会很少发生。

seaborn介绍

Seaborn是基于matplotlib的图形可视化python包,它在matplotlib的基础上进行了更高级的API封装,能高度兼容numpy与pandas数据结构以及scipy与statsmodels等统计模式。它提供了一种高度交互式界面,同时对于配色上也更加舒服,图标元素的样式也更加细腻,便于用户能够更容易做出各种有吸引力的统计图表。
与matplotlib的关系:使用matplotlib能制作具有更多特色的图,应该把Seaborn视为matplotlib的补充,而不是替代物。

seaborn安装:

pip3 install seaborn,大家也可点击 此处进入文章参考,我的可能anacondalib已经有了,截图如下:

seaborn.Implot()是一个非常有用的方法,它会在绘制二进制散点图时,自动完成回归拟合,里边参数x,y分别代表横纵坐标的列名示例如下:

关于seaborn可视化的相关技巧还有很多,详细请查看知乎上一位博主写的 这个系列,我举一例进行演示,代码和截图如下:

可能因为网络的问题访问不了数据集,会导致报错。建议直接下载好了用,我的iris.csv数据集也会在文末分享

下边再通过另一绘制实例进一步描述

补充说明:

核心代码:

什么是Pandas


Pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
Pandas纳入了大量库和一些标准的数据模型,提供了大量能使我们快速便捷地处理数据的函数和方法。
主要包含两种数据类型:Series和DataFrame:

Series可以理解为dict的升级版本,主数组存放numpy数据类型,index数据存放索引DataFrame相当于多维的Series,有两个索引数组,分别是行索引和列索引,可以理解成Series组成的字典

什么是Pyplot

详细参考博文Python深度学习入门之plt画图工具基础使用

plt.title(“鸢尾花数据展示”)无法显示中文的解决办法

不加fit_reg=False的话,显示时自动绘制直线,即默认为True,线性拟合,如下图所示

相关知识

BP神经网络鸢尾花红酒数据分类分析与源码实现
深度学习入门——基于TensorFlow的鸢尾花分类实现(TensorFlow
神经网络与深度学习(五)前馈神经网络(3)鸢尾花分类
实验一:鸢尾花数据集分类
基于机器学习的鸢尾花数据集的三分类算法的实现 C++
【机器学习】鸢尾花分类
【机器学习小实验5】基于决策树和随机森林的鸢尾花种类预测
机器学习实践:基于支持向量机算法对鸢尾花进行分类
鸢尾花分类
【机器学习】经典数据集鸢尾花的分类识别

网址: 深度学习鸢尾花分类实验报告 鸢尾花实验目的 https://www.huajiangbk.com/newsview1388134.html

所属分类:花卉
上一篇: 花友们都是用什么app记录每天学
下一篇: 小学生观察日记(精选26篇)

推荐分享