2

Я только что выполнил код here (с незначительными изменениями для sklearn 0.17). В этом примере данные представляют собой только списки или массивы numpy. Теперь я хочу подготовить набор данных для обучения игрушек на диске и использовать datasets.load_files, чтобы загрузить его для классификации по нескольким методам. Однако, просто следуя соглашению load_files, а затем копируя один и тот же файл в несколько папок, не создается список списков (наборы этикеток) для dataset.target.Подготовьте учебный набор данных для классификации многокласн.

Итак, каков правильный способ подготовки набора данных для многосегментной классификации?

ответ

1

Не думаю, что load_files поддерживает многоуровневые классы, если честно, я никогда не использовал scikit, чтобы научиться загружать данные, я всегда выполняю загрузку и предварительную обработку данных с помощью панд. Один из вариантов для Вашего случая будет хранить ваши данные в виде 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('|') 
+0

Спасибо @maxymoo, это хороший момент. Я сканирую и храню несколько файлов, поэтому, возможно, я просто буду называть каждый документ, используя список меток, больше не структуры папок, и напишу функцию для анализа имен файлов и чтения содержимого ... – treslumen

+1

, если вы сканируете, вы можете хотите рассмотреть возможность использования базы данных, такой как mongodb или postgres, вы можете быть рады этому в долгосрочной перспективе, а не иметь кучу файлов, плавающих вокруг. Кроме того, вы можете сделать некоторые предварительные операции в базе данных, которые могут быть удобными. – maxymoo

Смежные вопросы