当前位置:  首页>> 技术小册>> Python机器学习基础教程(上)

2.3.1 一些样本数据集

在Python机器学习的世界里,数据是驱动模型训练与评估的核心。选择合适的样本数据集对于初学者来说尤为重要,它不仅能帮助理解机器学习算法的工作原理,还能通过实践加深理论知识。本节将介绍几种经典且广泛使用的样本数据集,这些数据集覆盖了分类、回归、聚类等多种学习任务,是入门Python机器学习的宝贵资源。

2.3.1.1 鸢尾花(Iris)数据集

概述
鸢尾花(Iris)数据集是机器学习和统计学领域最著名的数据集之一,首次出现在Ronald Fisher的1936年论文中。该数据集包含了150个样本,每个样本都有4个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度,单位:厘米)和1个目标变量(花的种类),共三种不同的鸢尾花:Setosa、Versicolour和Virginica。

用途
鸢尾花数据集常用于分类问题的演示,是初学者学习分类算法(如决策树、K近邻、逻辑回归、支持向量机等)的首选数据集。由于其特征简单且类别分明,非常适合用来理解模型训练与评估的基本流程。

在Python中的加载
鸢尾花数据集可以通过scikit-learn库轻松加载,scikit-learn是Python中广泛使用的机器学习库。

  1. from sklearn.datasets import load_iris
  2. # 加载数据
  3. iris = load_iris()
  4. X = iris.data # 特征数据
  5. y = iris.target # 目标变量
  6. # 查看数据形状
  7. print(X.shape) # (150, 4)
  8. print(y.shape) # (150,)

2.3.1.2 波士顿房价(Boston Housing)数据集

概述
波士顿房价数据集是一个经典的回归数据集,用于预测波士顿地区房屋的中位数价格。数据集包含506个样本,每个样本有13个特征(如房间数、犯罪率、一氧化氮浓度等),以及一个目标变量(房屋的中位数价格,单位:千美元)。

用途
该数据集是回归问题研究的理想选择,常用于评估回归模型的性能,如线性回归、决策树回归、随机森林回归等。通过学习如何预测房价,可以深入理解回归模型如何根据特征值预测连续型目标变量的值。

在Python中的加载
波士顿房价数据集同样可以通过scikit-learn库加载。

  1. from sklearn.datasets import load_boston
  2. # 注意:在scikit-learn的新版本中,load_boston() 可能已被弃用或替换为其他函数
  3. # 这里以旧版本为例,新版本中可能需要从sklearn.datasets.california_housing_fetch_california_housing()替代
  4. # 假设使用旧版本或找到替代方法
  5. boston = load_boston()
  6. X = boston.data
  7. y = boston.target
  8. # 查看数据形状
  9. print(X.shape) # (506, 13)
  10. print(y.shape) # (506,)

2.3.1.3 手写数字(MNIST)数据集

概述
MNIST数据集包含了大量的手写数字图片,通常用于训练和测试图像处理系统中的图像识别技术。它由0到9的数字组成,每个数字都被标准化为28x28像素的灰度图像,并存储在二维数组中。整个数据集分为训练集(60,000个样本)和测试集(10,000个样本)。

用途
MNIST数据集是深度学习入门的经典案例,特别是用于训练神经网络进行图像分类。通过构建并训练一个简单的神经网络来识别手写数字,可以深刻理解神经网络的前向传播、反向传播、参数更新等核心概念。

在Python中的加载
虽然scikit-learn库本身不直接提供MNIST数据集,但可以通过Keras库(一个高层神经网络API,运行在TensorFlow之上)或其他库如sklearn.datasets.fetch_openml(需指定数据集名称)来加载。

  1. from keras.datasets import mnist
  2. # 加载数据
  3. (train_images, train_labels), (test_images, test_labels) = mnist.load_data()
  4. # 查看数据形状
  5. print(train_images.shape) # (60000, 28, 28)
  6. print(train_labels.shape) # (60000,)
  7. print(test_images.shape) # (10000, 28, 28)
  8. print(test_labels.shape) # (10000,)

2.3.1.4 乳腺癌诊断(Breast Cancer Wisconsin)数据集

概述
乳腺癌诊断数据集来源于威斯康星大学医院,用于预测乳腺癌是恶性还是良性。该数据集包含569个样本,每个样本有30个实数值特征,这些特征是通过图像分析从细针抽吸(FNA)的数字化图像中计算得出的,并有一个目标变量(诊断结果,0表示良性,1表示恶性)。

用途
该数据集适用于二分类问题的研究,常用于评估分类算法的性能,如逻辑回归、随机森林、梯度提升树等。通过学习如何根据乳腺肿块的特征预测其良恶性,可以了解二分类问题的处理流程及模型评估方法。

在Python中的加载
乳腺癌诊断数据集可以通过scikit-learn库加载。

  1. from sklearn.datasets import load_breast_cancer
  2. # 加载数据
  3. cancer = load_breast_cancer()
  4. X = cancer.data
  5. y = cancer.target
  6. # 查看数据形状
  7. print(X.shape) # (569, 30)
  8. print(y.shape) # (569,)

结语

以上介绍的几个样本数据集是Python机器学习领域中的经典之作,它们覆盖了分类、回归、图像识别等多种学习任务,是初学者理解机器学习算法、掌握模型训练与评估流程的重要资源。通过动手实践这些数据集,你将能够更深入地理解机器学习的奥秘,为后续更复杂的学习任务打下坚实的基础。


该分类下的相关小册推荐: