📅  最后修改于: 2023-12-03 15:42:33.835000             🧑  作者: Mango
鸢尾花数据集是著名的模式识别数据集,由三类不同种类的鸢尾花的测量数据组成。该数据集包含了四个特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度。每个特征都以测量单位记录。通过对该数据集进行探索性数据分析,我们可以更好地理解该数据集并为模型选择提供指导。
首先,我们需要加载鸢尾花数据集。我们将使用Python中的pandas和seaborn库来加载并探索该数据集。
import pandas as pd
import seaborn as sns
df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data',
names=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class'])
让我们查看一下数据的前五行,了解一下数据的基本情况。
df.head()
| | sepal_length | sepal_width | petal_length | petal_width | class | |---|---|---|---|---|---| | 0 | 5.1 | 3.5 | 1.4 | 0.2 | Iris-setosa | | 1 | 4.9 | 3.0 | 1.4 | 0.2 | Iris-setosa | | 2 | 4.7 | 3.2 | 1.3 | 0.2 | Iris-setosa | | 3 | 4.6 | 3.1 | 1.5 | 0.2 | Iris-setosa | | 4 | 5.0 | 3.6 | 1.4 | 0.2 | Iris-setosa |
我们可以看到数据集包含了150行数据,其中每一行都记录了鸢尾花的四个特征值以及它所属的类别。类别共有三种:Iris-setosa,Iris-versicolor和Iris-virginica。
下一步,我们可以使用describe方法获取数据集的相关统计信息。
df.describe()
| | sepal_length | sepal_width | petal_length | petal_width | |---|---|---|---|---| | count | 150.000000 | 150.000000 | 150.000000 | 150.000000 | | mean | 5.843333 | 3.054000 | 3.758667 | 1.198667 | | std | 0.828066 | 0.433594 | 1.764420 | 0.763161 | | min | 4.300000 | 2.000000 | 1.000000 | 0.100000 | | 25% | 5.100000 | 2.800000 | 1.600000 | 0.300000 | | 50% | 5.800000 | 3.000000 | 4.350000 | 1.300000 | | 75% | 6.400000 | 3.300000 | 5.100000 | 1.800000 | | max | 7.900000 | 4.400000 | 6.900000 | 2.500000 |
从以上描述性统计中,我们可以看到花萼长度、花萼宽度、花瓣长度和花瓣宽度的平均值、标准差、最小值和最大值。
进一步了解该数据集的方法之一是通过可视化来分析分布。下面是一些可视化的示例。
对于不同类别的鸢尾花,四个特征值的平均值可以用条形图表示。这有助于更好地了解它们之间的差异。
sns.barplot(x='class', y='sepal_length',data=df)
sns.barplot(x='class', y='sepal_width',data=df)
sns.barplot(x='class', y='petal_length',data=df)
sns.barplot(x='class', y='petal_width',data=df)
接下来,我们可以使用散点图来探索特征之间的关系。
sns.pairplot(df, hue='class')
从上图中我们可以看到,花瓣长度和花瓣宽度这两个特征具有很好的线性关系,而花萼长度和花萼宽度的线性关系较弱。此外,通过观察不同类别的鸢尾花的分布情况,我们可以更好地了解它们之间的区别。
通过对鸢尾花数据集的探索性数据分析,我们可以更好地了解该数据集以及不同特征之间的关系。这将有助于为后续的建模过程提供指导并更好地理解模型的结果。