ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

机器学习算法在 IRIS 数据集上的可视化与应用

2022-08-30 07:32:42  阅读:363  来源: 互联网

标签:IRIS scikit 可视化 learn org 集上 数据 pandas sklearn


机器学习算法在 IRIS 数据集上的可视化与应用

五 eri 集由 3 种鸢尾花(Iris Setosa、Iris Virginia、Iris Versicolar)组成,每个品种有 50 个样本,共有 150 个数据。该数据集由英国统计学家和生物学家 Ronald Fisher 在其 1936 年的文章“在毒理学问题中使用多重测量”[1] 中介绍。除了作为多变量数据集之外,鸢尾花数据还包括每个样本的萼片长度和宽度、花瓣长度和宽度(以厘米为单位)。该数据是数据科学和机器学习初学者最常用的开源数据集之一。它由 5 个特征下的 150 条记录组成:萼片长度、萼片宽度、花瓣长度、花瓣宽度和类标签(物种),数据集中的一些示例如下图所示。

0. 导入库

在这个应用程序中,我们将包括用于读取和操作数据的 Pandas、用于数据可视化的 Seaborn 和 Matplotlib,以及用于在我们的工作环境中应用机器学习算法的 Sklearn 库。

  1. 获取数据集和特征

鸢尾花数据集由每行中与一朵花相关的数据和每列中该花的特征组成。在这个阶段,我们将向您展示如何使用以下两种方法将数据集导入本地或 colab 环境。

1.1。从远程服务器

在上面的数据框表中,默认显示 10 个数据。此外,通过 Pandas 库中的更新,可以以 Excel 表格的形式处理交互式笔记本输出。通过单击右上角的向导,可以获得交互式输出并可以应用过滤器。

1.2. wget

由于google colab环境运行在google linux服务器上,我们可以通过wget从远程服务器获取数据。在下图中,我们可以在左侧的文件选项卡部分看到“iris.csv”文件。

2. 数据集属性

作为使用 pandas 读取 iris 数据集的结果,它以数据帧格式返回数据。

它使用目标名称和目标参数显示目标的名称和类别。

在数据科学领域工作时,获取有关数据的简要信息将很有用。特别是,确定数据中是否有空/未填充的字段在数据操作中也很重要。更多详细信息,可以使用 pandas 库 aip api ( https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.describe.html )

3. 数据集的可视化

数据集可视化在数据科学中作为数据的预览很重要。 Seaborn、pandas.platting、matplot 等。这些库包含快速概览所需的方法。

[

API 参考 - seaborn 0.11.2 文档

用于在 FacetGrid 上绘制关系图的图形级界面。

seaborn.pydata.org

](https://seaborn.pydata.org/api.html)

[

图表可视化 - pandas 1.4.3 文档

我们提供了 pandas 的基础知识,以轻松创建外观漂亮的情节。请参阅可视化库部分...

pandas.pydata.org

](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html#plotting-tools)

[

图表可视化 - pandas 1.4.3 文档

我们提供了 pandas 的基础知识,以轻松创建外观漂亮的情节。请参阅可视化库部分...

pandas.pydata.org

](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html#plotting-tools)

配对图: 我们可以在数据上轻松比较pair plot和pandas_plotting数据集列,并查看数据之间的相关性。

直方图: 同样,直方图帮助我们理解数据特征的频率。数据属性允许我们查看哪些列和哪些标量数据更频繁地重复。使用这种方法,在数据分类问题中,直方图可以向我们展示有意义的信息以及应该使用哪种分类算法。

相关性:它解释了数据列中包含的缩放器值之间的关系,并使我们能够评论它们的相似性。

corrolation matrix

从相关矩阵中可以看出,深色区域表示数据之间的标量语义关系较弱,而浅色区域表示数值关系。

在 3D 中可视化 2D 数据

在数据分析中,很容易提供具有2个特征和1个目标特征的数据的可视化,并且可以很容易地从视觉上区分一个分类问题的解决方案。结果,维度的增加和高维数据的可视化都使得读取高维数据变得困难,并且现有库的方法不允许执行此过程。在本节中,我们将使用 PCA(Principal Compenant Analysis)方法将具有 4 个特征和 1 个目标特征的数据缩减为 3 个维度,并将这些数据可视化。

2-D Visualization

3-D Visualization

4. 用机器学习算法解决分类问题

许多机器学习算法试图从输入数据中预测输出。特别是在这个应用中,由于我们的数据具有目标特征,即我们的数据被标记,因此将使用监督学习算法。首先,借助库读取数据集后,我们需要将其分离为训练和测试,以衡量数据的分类性能。

数据缩放:在某些应用程序中,数据特征中的值之间可能存在巨大差异。例如,在包含房屋特征的数据集中估算房屋价格的应用中,房屋的平方米属性值的分布与极限值之间存在较大的标量差异和房子里的房间数量。特别是由于使用人工神经网络进行训练,数据和权重循环以及在具有这些值的特征的神经元内添加偏置值,激活函数输出将导致成功完成的训练和一些值的非常高的偏差和权重更新在这些值通过反向传播和链式方法的导数计算。一些值会暴露于梯度消失问题(梯度损失或损失重要性接近 0 值)。因此,本申请将采用标准秤操作。您可以通过我将在下面留下的链接和内部链接轻松访问更多详细信息。

[

6.3.预处理数据

sklearn.preprocessing 包提供了几个常用的实用函数和转换器类来改变原始…

scikit-learn.org

](https://scikit-learn.org/stable/modules/preprocessing.html)

分类:算法会对 iris 数据集上的 120 个数据进行训练,在数据的分类中分为 120/30,并会尝试检测错误并尝试确定由于以下原因创建的模型的性能对 30 个测试数据的训练。在此应用程序中,使用 Logistic 回归、LinearDiscriminantAnalysis、KNeighborsClassifier/KNN、DecisionTreeClassifier、GaussianNB 和支持向量机/SVC 算法进行分类。您可以在我将在下面留下的链接中找到完全随机选择的分类算法及其背后的数学表达式的详细信息。

[

sklearn.linear_model.LogisticRegression

逻辑回归(又名 logit,MaxEnt)分类器。在多类情况下,训练算法使用一对一休息……

scikit-learn.org

](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression)

[

sklearn.discriminant_analysis.LinearDiscriminantAnalysis

使用 sklearn.discriminant_analysis.LinearDiscriminantAnalysis 的示例:线性和二次判别分析…

scikit-learn.org

](https://scikit-learn.org/stable/modules/generated/sklearn.discriminant_analysis.LinearDiscriminantAnalysis.html?highlight=lineardiscriminantanalysis#sklearn.discriminant_analysis.LinearDiscriminantAnalysis)

[

sklearn.neighbors.KNeighborsClassifier

使用 sklearn.neighbors.KNeighborsClassifier 的示例:scikit-learn 0.24 的发布亮点...

scikit-learn.org

](https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html?highlight=kneighborsclassifier#sklearn.neighbors.KNeighborsClassifier)

[

sklearn.tree.DecisionTreeClassifier

决策树分类器。阅读更多内容。参数:criteria{"gini", "entropy", "log_loss"}, default="gini" ...

scikit-learn.org

](https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html?highlight=decisiontreeclassifier#sklearn.tree.DecisionTreeClassifier)

[

sklearn.naive_bayes.GaussianNB

使用 sklearn.naive_bayes.GaussianNB 的示例:分类器校准的比较......的校准比较

scikit-learn.org

](https://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.GaussianNB.html?highlight=gaussiannb#sklearn.naive_bayes.GaussianNB)

[

sklearn.svm.SVC

C-支持向量分类。该实现基于 libsvm。拟合时间至少与...呈二次方关系

scikit-learn.org

](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html?highlight=svc#sklearn.svm.SVC)

五、结论与评价

当检查获得的结果时,可以看出所有的分类算法都取得了超过 90% 的成功率。但是,由于数据集很小,并且单边分类会影响性能,例如 3-4%,因此针对更大的数据集评估这些算法的性能会更有利。

快乐的编码...

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/1600/41453006

标签:IRIS,scikit,可视化,learn,org,集上,数据,pandas,sklearn
来源: https://www.cnblogs.com/amboke/p/16637999.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有