趋近智
Scikit-learn 配备了几个标准数据集,它们对于开始使用、测试算法和比较结果非常有帮助。您无需立即查找和格式化自己的数据,而是可以使用这些现成的数据集来练习该库的功能。这些数据集可以通过 sklearn.datasets 模块访问。
load_* 函数对于通常内嵌在库中的较小、经典数据集,Scikit-learn 提供了 load_* 函数。这些函数返回一个特殊对象,常被称为“Bunch”,它作用类似于一个包含数据及其元数据的字典。我们来加载著名的鸢尾花数据集,它是分类任务的常用基准。
from sklearn.datasets import load_iris
import pandas as pd
# 加载鸢尾花数据集
iris_data = load_iris()
# 返回的对象作用类似于字典
print(f"iris 数据集对象的键:{list(iris_data.keys())}")
输出通常会显示类似于 data、target、frame、target_names、DESCR、feature_names、filename 和 data_module 的键。我们来查看最重要的属性:
data:它包含作为 NumPy 数组的特征(测量值)。每行代表一个样本(一朵花),每列代表一个特征(萼片长度、萼片宽度、花瓣长度、花瓣宽度)。target:这是一个 NumPy 数组,包含每个样本的标签或目标值。在鸢尾花数据集中,这些对应于鸢尾花的种类(0、1 或 2)。feature_names:一个字符串列表,指示 data 中每个特征列的名称。target_names:一个字符串列表,指示 target 中每个目标类别的名称。DESCR:一个包含数据集详细描述的字符串。打印并阅读它总是一个好习惯。frame:(可选,取决于参数 (parameter))一个 Pandas DataFrame,包含 data 和 target,通常带有正确的列名。我们来查看其中一些属性:
# 打印特征名称
print(f"特征名称:{iris_data.feature_names}")
# 打印目标名称
print(f"目标名称:{iris_data.target_names}")
# 打印数据(特征)的前 5 行
print(f"\n数据前 5 行:\n{iris_data.data[:5]}")
# 打印前 5 个目标标签
print(f"\n前 5 个目标:{iris_data.target[:5]}")
# 打印数据集描述的一部分
print(f"\n数据集描述(部分):\n{iris_data.DESCR[:500]}...")
为了方便,特别是如果您喜欢使用 Pandas(如先决条件中所述),您通常可以将数据直接加载到 DataFrame 中。load_* 函数通常接受 as_frame=True 参数。
# 将鸢尾花数据集加载为 Pandas DataFrame
iris_df = load_iris(as_frame=True)['frame']
# 显示 DataFrame 的前 5 行
print("\n作为 Pandas DataFrame 的鸢尾花数据集(前 5 行):")
print(iris_df.head())
这个 DataFrame 方便地结合了特征和目标列,并带有有意义的名称。
其他常用的 load_* 函数包括:
load_digits():用于分类的手写数字数据集。load_diabetes():用于回归的糖尿病数据集。load_breast_cancer():用于二元分类的乳腺癌数据集。除了内嵌的 load_* 数据集外,sklearn.datasets 还提供了:
"* fetch_* 函数: 它们从互联网下载更大的数据集(例如,fetch_california_housing、fetch_olivetti_faces)。它们的工作方式类似于 load_* 函数,但首次下载需要互联网连接。"
make_* 函数: 它们根据指定参数 (parameter)生成合成数据集(例如,make_classification、make_regression、make_blobs)。这些对于受控实验和了解算法在特定数据特点下的行为非常有用。使用这些内置数据集是熟悉不同类型的机器学习 (machine learning)问题以及 Scikit-learn 期望的数据格式的好方法,这在您使用自己的自定义数据之前很有帮助。在接下来的实践练习中,您将通过加载其中一个数据集来验证您的安装。
这部分内容有帮助吗?
load_*、fetch_* 和 make_* 函数,以及 'Bunch' 对象的结构。sklearn.datasets, Scikit-learn developers, 2024 - 提供 sklearn.datasets 模块中所有数据集加载、获取和生成函数的详细 API 文档。as_frame=True 参数加载 Scikit-learn 数据集时会返回该对象。© 2026 ApX Machine LearningAI伦理与透明度•