Sklearn 多类数据集加载



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

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

y => 带有类列表的 Python 列表(文本)。

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

    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.csv4.0,3.2,5.5
    6.8,5.6,3.3

  • targets.csv1,4 <-- 样本一属于第 1 类和第 4
    类2,3 <-- 样本二属于类 2,3

MultiLabelBinarizer对输出目标进行编码,使变量y准备好输入多类分类器。代码的输出为:

y = array([[1, 0, 0, 1],
   [0, 1, 1, 0]])
这意味着样本 1 属于

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

相关内容

  • 没有找到相关文章