kann FeatureUnion in scikit-learn aufgrund unterschiedlicher Dimensionen nicht verwenden

9

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

Implementierung

Mein FeatureUnion ist wie folgt aufgebaut:

%Vor%

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.

Frage

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?

    
jwacalex 11.09.2014, 19:22
quelle

2 Antworten

4

Folgendes hat für mich funktioniert:

%Vor%     
Josh 14.10.2016 03:23
quelle
1

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)) .

    
Jim K. 05.02.2016 22:09
quelle