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:(可选,取决于参数)一个 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_* 函数: 它们根据指定参数生成合成数据集(例如,make_classification、make_regression、make_blobs)。这些对于受控实验和了解算法在特定数据特点下的行为非常有用。使用这些内置数据集是熟悉不同类型的机器学习问题以及 Scikit-learn 期望的数据格式的好方法,这在您使用自己的自定义数据之前很有帮助。在接下来的实践练习中,您将通过加载其中一个数据集来验证您的安装。