Ich versuche, FeatureUnion
zu verwenden, um verschiedene Features aus einer Datenstruktur zu extrahieren, aber es schlägt aufgrund unterschiedlicher Dimensionen fehl: ValueError: blocks[0,:] has incompatible row dimensions
Mein FeatureUnion
ist wie folgt aufgebaut:
GetItemTransformer
wird verwendet, um verschiedene Teile von Daten aus derselben Struktur zu erhalten. Die Idee wird hier im scikit-learn issue-Tracker beschrieben.
Die Struktur selbst wird als {'f1': data_f1, 'f2': data_f2}
gespeichert, wobei data_f1
verschiedene Listen mit unterschiedlichen Längen sind.
Da der Y-Vektor sich von den Datenfeldern unterscheidet, gehe ich davon aus, dass der Fehler auftritt, aber wie kann ich den Vektor in beiden Fällen skalieren?
Ich weiß nicht, ob das auf Ihre Frage zutrifft, aber wir haben den gleichen Fehler in einer etwas anderen Situation gefunden und ihn einfach gelöst.
Unsere f1
Einträge waren jeweils Listen mit 15 numerischen Werten und wir mussten tf-idf auf f2
machen. Dies führte zu demselben Fehler bei inkompatiblen Zeilendimensionen.
Nachdem wir den Debugger durchlaufen hatten, stellten wir fest, dass die Formen unserer Matrizen leicht unterschiedlich waren und in den hstack()
-Aufruf in FeatureUnion
: (2569,)
und (2659, 706)
gingen.
Wenn wir f1
auf ein 2D-Nummernfeld anwenden, ändert sich die Form in (2659, 15)
und der Aufruf hstack
funktioniert.
Die Besetzung war ungefähr so: f1 = np.array(list(f1))
.
Tags und Links python classification scikit-learn text-classification