我只是遵循了这里的代码(对sklearn 0.17做了一些小修改)。在那个例子中,数据只是列表或numpy数组。现在我想在磁盘上准备一个玩具训练数据集,并使用datasets.load_files
加载它进行多标签分类。然而,简单地遵循load_files
约定,然后将同一个文件复制到多个文件夹中,并不能为dataset.target
生成列表(也称为标签集)。
那么,为多标签分类准备数据集的正确方法是什么呢?
我不认为load_files
支持多标签类,老实说,我从未使用过scikit学习加载数据,我总是使用panda进行初始数据加载和预处理。您的案例的一个选项是将数据存储为csv,将标签序列化为管道分隔列表
例如,您的文件data.csv
可能是
recipe_name,classes
'stir fried broccoli',chinese|vegetarian
'kung po chicken',chinese|meat
'sauerkraut salad',vegetarian|polish
您将按如下方式加载它:
import pandas as pd
df = pd.read_csv('data.csv')
X_train = df.recipe_name
y_train = df.classes.str.split('|')