Python中的Iris数据集

2025年1月5日 | 阅读 4 分钟

引言

Iris 数据集是机器学习和统计学中的一个经典数据集。1936年,英国生物学家兼统计学家 Ronald A. Fisher 首次引入该数据集,用以说明判别分析。该数据集包含 150 个鸢尾花样本,每个样本属于三个物种之一:setosa、versicolor 或 virginica。每个样本包含四个特征:萼片长度 (sepallength)、萼片宽度 (sepawidth)、花瓣长度 (petallenght) 和花瓣宽度 (petalwidth)。

本文将使用 Python 对 Iris 数据集进行深入研究。我们将探讨该数据集的各个方面,例如数据探索、可视化和机器学习建模。

什么是 Iris 数据集?

Iris 是一个经典的数据集,广泛用于机器学习和统计学。它由英国生物学家兼统计学家 Ronald A. Fisher 于 1936 年在其论文“使用多重测量进行分类问题”中引入。该数据集以鸢尾花命名,因为它包含来自三个鸢尾花物种的测量值:setosa、versicolor 和 virginica。

Iris 数据集通常用于基础学习,甚至用于测试某些机器学习算法。这展示了案例研究的实际应用,并突出了判别分析,其中将观测值分类到预定义的组中。

以下是 Iris 数据集的主要特征:

  1. 样本数:150 (每个物种 50 个)
  2. 特征数:4
    • 萼片长度(厘米)
    • 萼片宽度(厘米)
    • 花瓣长度(厘米)
    • 花瓣宽度(厘米)

物种

  • Iris setosa (鸢尾setosa)
  • Iris versicolor (鸢尾versicolor)
  • Iris virginica (鸢尾virginica)

数据集中每个实例都包含对单个鸢尾花的测量值。其目的是构建模型,根据这些特征预测鸢尾花的物种。

Iris 数据集易于理解,使其成为许多机器学习和统计学课程的常用工具。此外,它还提供了测试数据处理、特征工程、模型训练和评估等概念的机会。Iris 数据集在许多机器学习库/框架(如 Python 中的 scikit-learn)中用于教育目的。

加载 Iris 数据集

Iris 数据集的散点图

输出

Iris Dataset in Python

说明

  • 该代码使用 'Matplotlib' 为 Iris 数据集(机器学习中的经典数据集)创建散点图。
  • 它使用 'plt.subplots()' 初始化一个图形和坐标轴,获取一个坐标轴 ('ax') 用于绘图。
  • 散点图使用 'ax.scatter' 生成,Iris 数据集的前两个特征分别位于 x 轴和 y 轴上。
  • 点颜色由鸢尾花的物种决定,由 'c=iris.target' 参数指定。
  • 使用 'ax.set()' 并结合 'iris.feature_names' 中的特征名称来设置 x 轴和 y 轴标签。
  • 使用 'ax.legend()' 添加图例,根据目标变量 '(iris.target)' 显示唯一类别,并将其放置在右下角,标题为“Classes”。
  • 生成的可视化提供了对鸢尾花物种基于所选特征的分布和分离的见解。

绘制 PCA 表示

# 使用 matplotlib < 3.2 进行 3D 投影时未使用但必需的导入

输出

Iris Dataset in Python

说明

导入语句

  • 此代码包含对 'mpl_toolkits' 和 mplot3d 的导入操作,用于使用 matplotlib 创建三维投影。
  • 为了进行降维,我们从 scikit-learn 导入 PCA。

设置图形和坐标轴

  • 构建了 (8 x 6) 的 Matplotlib 图形。
  • 其中一个是 Axes3D 子图,具有仰角 ('elev') 和方位角 ('azim')。

执行 PCA

  • 使用 'n_component=3',通过使用 PCA 将 Iris 数据集 ('iris.data') 转换为三维。

3D 散点图

  • 使用 'ax.scatter' 绘制降维数据的 3D 散点图。
  • 点大小指定为四十,颜色描绘了所需的测量值。

轴标签和标题

  • 为了完成绘图,应包含标签和标题,将主轴表示为特征向量。
  • 为了清晰起见,删除了轴上的刻度标签。

显示绘图

  • 'plt.show()' 显示最终的 3D 散点图。
  • 可以看到鸢尾花物种在通过 PCA 获得的前三个主轴上的分布情况。

结论

在本文中,我们使用 Python 对 Iris 数据集进行了全面分析。我们从数据探索开始,检查了数据集的结构和特征。然后,我们利用数据可视化技术来深入了解不同特征之间的关系和分布。

最后,我们构建了机器学习模型,根据鸢尾花的特征对其进行分类。对这些模型的评估提供了关于它们在准确率、精确率、召回率和混淆矩阵方面的性能的宝贵信息。


下一主题Islice-in-python