对于多类问题,我使用Scikit-Learn。我发现很少有关于如何加载具有多个类的自定义数据集的示例。 sklearn.datasets.load_files
方法似乎不合适,因为文件需要多次存储。我现在有以下结构:
X =>带有功能列表的Python列表(文本中)。
y =>包含类列表的Python列表(文本中)。
如何将其转换为Scikit-Learn可以在分类器中使用的结构?
答案 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
targets.csv
MultiLabelBinarizer
以这样一种方式对输出目标进行编码,即y
变量已准备好输入多类分类器。代码的输出是:
y = array([[1, 0, 0, 1],
[0, 1, 1, 0]])
意味着样本1属于类1和4,样本2属于2和3。