前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >鸢尾花经典机器学习分类Python实现案例

鸢尾花经典机器学习分类Python实现案例

作者头像
机器思维研究院
发布2020-01-02 16:16:47
4.7K0
发布2020-01-02 16:16:47
举报
文章被收录于专栏:AI机器思维AI机器思维

作者Nature

出品AI机器思维

由Fisher在1936年整理的Iris 鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例。

其数据集变量包含4个特征(Sepal.Length(花萼长度)、Sepal.Width(花萼宽度)、Petal.Length(花瓣长度)、Petal.Width(花瓣宽度))这四个变量预测鸢尾花的分类,其特征值都为正浮点数,单位为厘米。预测变量目标值为鸢尾花的分类为三类:Iris Setosa(山鸢尾)、Iris Versicolour(杂色鸢尾),Iris Virginica(维吉尼亚鸢尾)。

Iris数据集内包含 3 类共 150 条记录,每类各 50 个数据,每条记录都有 4 项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,可以通过这4个特征预测鸢尾花卉属于(iris-setosa, iris-versicolour, iris-virginica)中的哪一品种。

int类型, 对三种分类做编号如下: 0 :Iris setosa(山鸢尾) 1 :Iris versicolor(杂色鸢尾) 2 :Iris virginica(维吉尼亚鸢尾)

第一步:对iris数据集导入,进行探索性分析,通过语言print(v_iris.target)查看花卉总类

运行结果如下,输出的结果包含150个数值,其中共有三种可能的取值(0、1、2),分别代表三种不同的鸢尾花卉。

对数据集查看分析,通过访问v_iris的target_names属性,可以了解每个值所代表的花卉类别。

运行后结果显示三类花卉名字为:

为了更好地理解这个数据集,可以使用matplotlib进行可视化图形显示,用三种颜色表示三种花卉,并绘制一幅散点图。x表示萼片的长度,y轴表示萼片的宽度。

程序如下:

运行结果如下图:

紫色、蓝色和黄色分别代表了山鸢尾、杂色鸢尾花和维吉尼亚鸢尾。由上图可见,紫色的点形成一簇,与其他点明显区分开了。由此可见以萼片的长宽来进行区分可以将山鸢尾花明显的和其他的两类品种区分开来。

对上面程序改造,根据Petal.Length(花瓣长度)、Petal.Width(花瓣宽度)花瓣变量分类:

程序如下:

运行结果如下,下图可以看到,使用花瓣的长和宽作为特征时,三种类别之间的区别度更明显,得到了三个不同的簇:

上面是二维的分析,然后进行分类绘制的二维分类图。下面通过主成分分析法(PCA)进行主成分分析,把四维减少到三维,并对得到的结果绘制为3D散点图。

使用萼片和花瓣的测量数据来描述数据集中各个鸢尾花卉的特点scikit-learn库的fit_transform( )函数用来降维的,它属于PCA对象。先导入PCA模块sklearn.decomposition,然后调用PCA( )构造函数,用n_components选项指定要降到几维(主成分)。此处降为三维(便于绘制三维散点图),然后调用fit_transform( )函数,传入四维的v_Iris数据集作为参数。

程序运行后结果显示的三维分类图如下:


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器思维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档