2016-04-21 3 views
2

Ich habe erfolgreich mit der Replikation eines der sklearn tutorials mit dem Iris-Datensatz in PyCharm mit Python 2.7 gespielt. Als ich jedoch versuchte, dies mit meinen eigenen Daten zu wiederholen, stieß ich auf ein Problem. Ich habe Daten aus einer CSV-Datei mit 'np.genfromtxt' importiert, aber aus irgendeinem Grund bekomme ich immer eine einzige Spaltenausgabe für X_r2 (siehe unten), wenn ich eine 2-Spalten-Ausgabe erhalten soll. Ich habe daher meine Daten durch einige zufällig generierte Variablen ersetzt, um sie auf SO zu posten, und ich bekomme immer noch das gleiche Problem.LinearDiscriminantAnalysis - Einspaltige Ausgabe von .transform (X)

Ich habe den "Problem" -Code unten eingefügt, und ich wäre interessiert zu wissen, was ich falsch gemacht habe. Ich habe ausführlich die Debugging-Funktionen in PyCharm verwendet, um zu überprüfen, ob der Typ und die Form meiner Variablen dem Original-Beispiel von slearn ähnlich sind, aber das hat mir bei dem Problem nicht geholfen. Jede Hilfe oder Vorschläge wären willkommen.

import numpy as np 
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis 

y = np.random.randint(2, size=500) 
X = np.random.randint(1, high=1000, size=(500, 6)) 
target_names = np.array([['XX'], ['YY']]) 
lda = LinearDiscriminantAnalysis(n_components=2) 
X_r2 = lda.fit(X, y).transform(X) 

Antwort

1

Das Array y im Beispiel geschrieben Sie hat Werte von 0, 1 und 2, während bei Ihnen nur die Werte 0 und 1. Diese Änderung hat erreicht, was Sie wollen:

import numpy as np 
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis 

y = np.random.randint(3, size=500) 
X = np.random.randint(1, high=1000, size=(500, 6)) 
target_names = np.array([['XX'], ['YY']]) 
lda = LinearDiscriminantAnalysis(n_components=2) 
X_r2 = lda.fit(X, y).transform(X) 
+0

Danke für die schnelle Antwort. Das behebt tatsächlich das Problem. Allerdings hatte ich nur zwei Ziele, da es mein aktuelles Problem darstellt. Würde das vorschlagen, dass diese Methode nur mit mindestens 3 Zielen funktioniert? –

+0

Ich weiß nicht, was die Methode tatsächlich macht. Um Ihre Follow-up-Frage zu stellen, bei der es eher darum geht, die Statistiken als die Programmierung zu verstehen, könnten Sie unter https://stats.stackexchange.com/ –

+0

besser beraten sein. Vielen Dank für den Hinweis. –

Verwandte Themen