Ich lese Spalten in .csv-Dateien als Eingaben in eine sklearn Naive Bayes passen. Ich bin jedoch in diesen Fehlern und Warnungen:ValueError: Inkonsistente Anzahl von Beispielen bei der Verwendung von sklearn auf defaultdict
DeprecationWarning: 1d Arrays übergeben, wie Daten in 0.17 veraltet ist und wird ValueError in 0.19 auslösen. Ändern Sie Ihre Daten um, indem Sie X.reshape (-1, 1) verwenden, wenn Ihre Daten ein einzelnes Feature enthalten, oder X.reshape (1, -1), wenn es ein einzelnes Beispiel enthält.
und
Valueerror: Gefunden Arrays mit inkonsistenten Anzahl von Proben: [1 10509]
Und hier ist mein Code:
clf = GaussianNB()
columns = defaultdict(list)
with open('file.CSV', 'rb') as f:
reader = csv.reader(f)
for row in reader:
for(i, v) in enumerate(row):
columns[i].append(v)
clf.fit(columns[9], columns[10])
Als Hinweis, len (Spalten [9]) und len (Spalten [10]) sind beide 10509
Wie die Warnung vorgeschlagen, habe ich viel versucht von verschiedenen Kombinationen von reshape(), flatten(), ravel(), und auch versucht, eine numpy Arrays zu verwenden, aber nichts scheint zu arbeiten.
Irgendwelche Vorschläge? Es scheint, dass die meisten Leute irgendeine Art von Datenstruktur anders als ein defaultdict verwenden, aber ich bin nicht sicher über, wie man andere Datenstrukturen benutzt, um von einem .csv zu lesen