【问题标题】:Prepare a training dataset for multilabel classification为多标签分类准备训练数据集
【发布时间】:2016-08-26 15:00:27
【问题描述】:

我只是按照代码here(对 sklearn 0.17 稍作修改)。在该示例中,数据只是列表或 numpy 数组。现在我想在磁盘上准备一个玩具训练数据集,并使用datasets.load_files 加载它以进行多标签分类。但是,仅遵循 load_files 约定,然后将同一个文件复制到多个文件夹中,不会为 dataset.target 生成列表列表(也称为标签集)。

那么为多标签分类准备数据集的正确方法是什么?

【问题讨论】:

    标签: python scikit-learn classification multilabel-classification


    【解决方案1】:

    我不认为load_files 支持多标签类,老实说我从来没有使用 scikit learn 加载数据,我总是使用 pandas 进行初始数据加载和预处理。您的情况的一种选择是将您的数据存储为 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('|')
    

    【讨论】:

    • 谢谢@maxymoo,这是一个很好的观点。我爬取并存储了多个文件,所以也许我将只使用标签列表命名每个文档,不再使用文件夹结构,并编写一个函数来解析文件名并读取内容......
    • 如果您正在爬网,您可能需要考虑使用 mongodb 或 postgres 之类的数据库,从长远来看,您可能会为它感到高兴,而不是让一堆文件四处游荡。你也可以在数据库上做一些很方便的预处理。
    猜你喜欢
    • 2019-09-30
    • 2020-04-05
    • 2018-03-07
    • 2021-08-17
    • 2018-03-25
    • 2018-03-29
    • 2019-05-20
    • 2019-10-07
    • 2020-03-16
    相关资源
    最近更新 更多