sklearn 中的数据集
Scikit-learn 提供了大量用于测试学习算法的数据集。它们有三种口味:
- 打包数据:这些小数据集与 scikit-learn 安装一起打包,可以使用 scikit-learn 中的工具下载
sklearn.datasets.load_*
- 可下载的数据:这些较大的数据集可供下载,scikit-learn 包含简化此过程的工具。这些工具可以在
sklearn.datasets.fetch_*
- 生成的数据:有几个数据集是从基于随机种子的模型生成的。这些可以在
sklearn.datasets.make_*
您可以使用 IPython 的制表符补全功能探索可用的数据集加载器、提取器和生成器。从 导入datasets
子模块后sklearn
,键入
datasets.load_<TAB>
或者
datasets.fetch_<TAB>
或者
datasets.make_<TAB>
查看可用功能的列表。
数据和标签的结构
scikit-learn 中的数据在大多数情况下保存为形状为 的二维 Numpy 数组(n, m)
。许多算法也接受scipy.sparse
相同形状的矩阵。
- n: (n_samples) 样本数:每个样本是一个要处理的项目(例如分类)。样本可以是文档、图片、声音、视频、天文物体、数据库或 CSV 文件中的一行,或者您可以用一组固定的数量特征描述的任何内容。
- m: (n_features) 可用于以定量方式描述每个项目的特征或不同特征的数量。特征通常是实值的,但在某些情况下可能是布尔值或离散值的。
从 sklearn 导入 数据集
请注意:其中许多数据集都非常大,下载可能需要很长时间!
加载数字数据
我们将仔细研究这些数据集之一。我们看一下数字数据集。我们将首先加载它:
从 sklearn.datasets 导入 load_digits
位数 = load_digits ()
同样,我们可以通过查看“键”来大致了解可用属性:
数字。键()
输出:
dict_keys(['data', 'target', 'frame', 'feature_names', 'target_names', 'images', 'DESCR'])
让我们来看看项目和功能的数量:
n_samples , n_features = 数字。数据。形状
打印((n_samples , n_features ))
输出:
(1797, 64)
打印(数字。数据[ 0 ])
打印(数字。目标)
输出:
[ 0. 0. 5. 13. 9. 1. 0. 0. 0. 0. 13. 15. 10. 15. 5. 0. 0. 3. 15. 2. 0. 11. 8. 0. 0. 4. 12. 0. 0. 8. 8. 0. 0. 5. 8. 0. 0. 9. 8. 0. 0. 4. 11. 0. 1. 12. 7. 0. 0. 2. 14. 5. 10. 12. 0. 0. 0. 0. 6. 13. 10. 0. 0. 0.] [0 1 2 ... 8 9 8]
这些数据也可以在digits.images 上找到。这是 8 行 8 列形式的图像的原始数据。
对于“数据”,图像对应于长度为 64 的一维 Numpy 数组,“图像”表示包含形状为 (8, 8) 的二维 numpy 数组
打印(“项目的形状:” , 数字。数据[ 0 ] 。形状)
打印(“项目的数据类型:” , 类型(数字。数据[ 0 ]))
打印(“项目的形状:” ,