首页 > 分享 > 手把手教你学Python之鸢尾花分类(scikit

手把手教你学Python之鸢尾花分类(scikit

目录

1、鸢尾花分类问题介绍

2、自主实现鸢尾花分类

3、调用scikit-learn库实现鸢尾花分类

1、鸢尾花分类问题介绍

问题描述:一名植物学爱好者对发现的鸢尾花的品种很感兴趣。他收集了每朵鸢尾花的一些测量数据:花瓣的长度和宽度以及花萼的长度和宽度。他还有一些鸢尾花分类的测量数据,这些花之前已经被植物学专家鉴定为属于 setosaversicolorvirginica 三个品种之一。对于这些测量数据,他可以确定每朵鸢尾花所属的品种。我们的目标是构建一个机器学习模型,可以从这些已知品种的鸢尾花测量数据中进行学习,从而能够预测新鸢尾花的品种

鸢尾花数据集(部分数据效果如下)介绍:

数据量:150条测量数据,包含3种类别,每种类别50个样本

每条数据包含5项基本信息:花瓣的长度花瓣的宽度花萼的长度花萼的宽度以及鸢尾花的类别

2、自主实现鸢尾花分类

(1)读取数据,获取样本特征数据和标签数据。鸢尾花数据默认存放在txt文本中,其中,第1行为标题,第1列为样本序号,所以需要跳过标题行和序号列。每个样本单独存放在一行,不同的数据部分通过空格隔开。关键代码参考如下。

    (2)数据可视化分析。以图表的形式观察鸢尾花花瓣长度和宽度鸢尾花品种的关系、鸢尾花花萼长度和宽度鸢尾花品种的关系。关键代码如下。

    生成的数据图效果如下,通过图可以观察到花瓣的长度和宽度与鸢尾花品种的相关性更强。

(3)K近邻算法(KNN)KNN算法是数据挖掘分类技术中最简单的方法之一,思想是每个样本都可以用它最接近的k个邻居来代表。如果一个样本在特征空间中的k个最邻近的样本中的大多数属于某一个类别,则该样本也划分为这个类别。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。例如下图中,绿色圆圈表示待测样本类别,当k取3时,有2个红色三角形1个蓝色正方形,因此类型与红色三角形相同;当k取5时,有2个红色三角形3个蓝色正方形,因此类型与蓝色正方形相同k的取值会直接影响最终的结果

    对于K近邻算法而言,最关键的就是计算待测点和其它样本之间的距离,然后找到最邻近的K个邻居,统计这些邻居中各种类型的个数,获取个数最多的类型。关键代码如下。

将训练集中的数据随机打乱,然后将最后一条作为验证数据,之前的所有数据都作为训练数据。通过训练数据来预测验证数据的类型,然后和真正的类型进行比较。关键代码参考如下。

调用该方法100次,观察结果。

3、调用scikit-learn库实现鸢尾花分类

主要流程为:

加载数据划分训练集和测试集创建分类器拟合训练数据预测结果比较预测结果与真实结果

关键代码参考如下:

相关资源和代码可关注微信公众号:Python资源分享,回复 flower 即可获取,详细的视频讲解可查看 CSDN学院 里的手把手教你学Python系列视频:https://edu.csdn.net/lecturer/5686。   欢迎加入QQ群一起学习交流:858228002 。

相关知识

机器学习案例:鸢尾花分类——基于Scikit
Python 基于BP神经网络的鸢尾花分类
python鸢尾花数据集的分类问题 -- 逻辑回归问题研究
[Python机器学习]鸢尾花分类 机器学习应用
插花步骤与技巧详解,手把手教你学插花
[机器学习基础][笔记] 一、鸢尾花分类
KNN算法实现鸢尾花数据集分类
python深度学习之用lightgbm算法实现鸢尾花种类的分类任务实战源码
基于python的鸢尾花二分类
Python原生代码实现KNN算法(鸢尾花数据集)

网址: 手把手教你学Python之鸢尾花分类(scikit https://m.huajiangbk.com/newsview463393.html

所属分类:花卉
上一篇: 花卉的实用分类与科学的系统分类各
下一篇: 探究仙人掌的植物学分类(解析仙人