Sklearn多类数据集加载

时间:2016-03-10 13:14:05

标签: python dataset scikit-learn

对于多类问题,我使用Scikit-Learn。我发现很少有关于如何加载具有多个类的自定义数据集的示例。 sklearn.datasets.load_files方法似乎不合适,因为文件需要多次存储。我现在有以下结构:

X =>带有功能列表的Python列表(文本中)。

y =>包含类列表的Python列表(文本中)。

如何将其转换为Scikit-Learn可以在分类器中使用的结构?

1 个答案:

答案 0 :(得分:1)

    import numpy as np
    from sklearn.preprocessing import MultiLabelBinarizer

    X = np.loadtxt('samples.csv', delimiter=",")
    y_aux = np.loadtxt('targets.csv', delimiter=",")
    y = MultiLabelBinarizer().fit_transform(y_aux)

代码说明:假设您将所有功能存储在名为samples.csv的文件中,将多个标签存储在另一个名为targets.csv的文件中(当然可以存储它们)在同一个文件中,您只需要拆分列)。为清楚起见,此示例中的文件包含:

  • samples.csv
    4.0,3.2,5.5
    6.8,5.6,3.3
  • targets.csv
    1,4< - 样品1属于1类和4类 2,3< - 样品2属于2,3类

MultiLabelBinarizer以这样一种方式对输出目标进行编码,即y变量已准备好输入多类分类器。代码的输出是:

y = array([[1, 0, 0, 1],
   [0, 1, 1, 0]])

意味着样本1属于类1和4,样本2属于2和3。