2

Ich folgte nur dem Code here (mit kleinen Änderungen für sklearn 0.17). In diesem Beispiel sind Daten nur Listen oder Nummernfelder. Jetzt möchte ich einen Spielzeugtrainingsdatensatz auf dem Datenträger vorbereiten und ihn mit datasets.load_files für die Multilabel-Klassifizierung laden. Wenn Sie jedoch einfach der Konvention load_files folgen und dann die gleiche Datei in mehrere Ordner kopieren, wird keine Liste mit Listen (alias Label-Sets) für dataset.target erstellt.Bereiten Sie einen Trainingsdatensatz für Multilabel-Klassifizierung vor

Also, was ist der richtige Weg, um einen Datensatz für Multilabel-Klassifizierung vorzubereiten?

Antwort

1

Ich glaube nicht, load_files unterstützt Multilabel-Klassen, um ehrlich zu sein, ich habe nie verwendet scikit lernen, Daten zu laden, ich mache immer meine erste Daten laden und Vorverarbeitung mit Pandas. Eine Option für Ihren Fall wäre Ihre Daten als CSV zu speichern, Serialisierung Ihre Etiketten als Verkettungszeichen getrennte Listen

Zum Beispiel Ihre Datei data.csv könnte

recipe_name,classes 
'stir fried broccoli',chinese|vegetarian 
'kung po chicken',chinese|meat 
'sauerkraut salad',vegetarian|polish 

und man würde es wie folgt laden:

import pandas as pd 
df = pd.read_csv('data.csv') 
X_train = df.recipe_name 
y_train = df.classes.str.split('|') 
+0

Dank @maxymoo, das ist ein guter Punkt. Ich crawle und speichere mehrere Dateien, also werde ich einfach jedes Dokument mit einer Liste von Labels benennen, keine Ordnerstrukturen mehr und schreibe eine Funktion, um die Dateinamen zu analysieren und den Inhalt zu lesen ... – treslumen

+1

Wenn Sie crawlen, könnten Sie Wenn Sie eine Datenbank wie mongodb oder postgres in Erwägung ziehen, können Sie sich auf lange Sicht dafür freuen, anstatt nur ein paar Dateien zu haben. Sie können auch einen Teil des Preprossing auf der Datenbank machen, was praktisch sein kann. – maxymoo