在机器学习领域,为了评估算法在现实世界数据上的表现,常常需要获取大型数据集。这些数据集不仅包括了机器学习社区常用的基准数据,还允许在控制数据的统计特性(如特征之间的相关性和信息量)的同时,评估数据集规模(样本数和特征数)对算法性能的影响。此外,还可以生成合成数据,以便于在保持数据统计特性不变的情况下,研究数据规模的影响。
数据集的一般API提供了三种主要类型的数据集接口,以满足不同类型数据集的需求。首先是数据加载器,它们用于加载小型的标准数据集,这些数据集在“玩具数据集”部分有详细描述。其次是数据获取器,它们用于下载和加载较大的数据集,这些数据集在“真实世界数据集”部分有所介绍。无论是加载器还是获取器,它们都返回一个至少包含两个项目的Bunch对象:一个形状为n_samples*n_features的数组,其键为data(20newsgroups除外),以及一个长度为n_samples的numpy数组,包含目标值,其键为target。Bunch对象是一个字典,它将其键暴露为属性。有关Bunch对象的更多信息,请参阅Bunch文档。
几乎所有这些函数都可以通过设置return_X_y参数为True,将输出限制为仅包含数据和目标的元组。数据集还包含在其DESCR属性中的完整描述,一些数据集还包含feature_names和target_names。有关详细信息,请参见下面的数据集描述。
数据集生成函数用于生成受控的合成数据集,这些数据集在“生成数据集”部分有所描述。这些函数返回一个包含n_samples*n_features的numpy数组X和一个包含n_samples长度的目标y的数组的元组。此外,还有一些杂项工具用于加载其他格式或来自其他位置的数据集,这些在“加载其他数据集”部分有所描述。
玩具数据集通常用于算法开发的早期阶段,因为它们规模较小,易于理解和操作。这些数据集包括:
真实世界数据集通常规模较大,更接近实际应用场景,用于评估算法在复杂数据上的表现。这些数据集包括:
生成数据集允许在控制数据的统计特性的同时,生成不同规模的数据集。这些数据集的生成器包括:
除了上述数据集外,还有一些工具可以帮助加载其他格式或来自其他位置的数据集,包括: