概念
这个库里的dataset是 Bunch。类似于字典的对象。
数据集加载
外部数据集加载:scikit-learn使用任何存储为numpy数组或者scipy稀疏数组的数值数据。 其他可以转化成数值数组的类型也可以接受,如pandas中的DataFrame。以下推荐一些将标准纵列形式的数据转换为scikit-learn可以使用的格式的方法:
- pandas.io 提供了从常见格式(包括CSV,Excel,JSON,SQL等)中读取数据的工具.DateFrame 也可以从由 元组或者字典组成的列表构建而成.Pandas能顺利的处理异构的数据,并且提供了处理和转换 成方便scikit-learn使用的数值数据的工具。
- scipy.io专门处理科学计算领域经常使用的二进制格式,例如.mat和.arff格式的内容。
- numpy/routines.io 将纵列形式的数据标准的加载为numpy数组
- scikit-learn的datasets.load_svmlight_file处理svmlight或者libSVM稀疏矩阵
- scikit-learn的 datasets.load_files 处理文本文件组成的目录,每个目录名是每个 类别的名称,每个目录内的每个文件对应该类别的一个样本
对于一些杂项数据,例如图像,视屏,音频:
- skimage.io 或 Imageio 将图像或者视屏加载为numpy数组
- scipy.misc.imread (requires the Pillow package)将各种图像文件格式加载为 像素灰度数据
- scipy.io.wavfile.read 将WAV文件读入一个numpy数组
存储为字符串的无序(或者名字)特征(在pandas的DataFrame中很常见)需要转换为整数,当整数类别变量 被编码成独热变量(sklearn.preprocessing.OneHotEncoder)或类似数据时,它或许可以被最好的利用
学习和预测
选一个估计器
train_test_split(X, y, test_size = 0.2, random_state=42, stratify=y), stratify 按y排列,使得test 和train里面的数据还是跟original data 的排列顺序一样。