2016-11-13 2 views
1

ich die from sklearn.decomposition import PCA library, IncrementalPCA bin mit der Dimensionalität meines Problems zu reduzieren, wie folgt:wie PCA-Transformation passen auf Test-Set

training_data = [...] 
training_target = [...] 
test_data = [...] 
test_target = [...] 
ipca = IncrementalPCA(n_components, batch_size) 
new_training_data = ipca.fit_transform(training_data) 

Um die Tests mit einem bestimmten Klassifikator zu laufen, ich brauche den Test mit der Einstellung passen Information, die im Trainingssatz erhalten wird (etwas wie Eigenwerte und Eigenvektoren), um die gleiche Größe des neuen Trainingssatzes zu reduzieren. Aber wie kann ich das mit dieser Bibliothek (oder einer anderen) machen, da die ipca.fit_transform(data) mir nichts zurückgibt, wie z. B. Eigpairs oder etwas Wert, um die Größe des Testsets zu verändern?

Antwort

4

Die Transformation ist intern im IncrementalPCA Objekt, nachdem Sie fit oder fit_transform aufgerufen haben. Wenn Sie icpa.fit_transform aufrufen, geben Sie an, die Hauptkomponenten für die angegebenen Daten zu transformieren und diese Transformation auch auf die Daten anzuwenden. Um dann einen anderen Datensatz zu transformieren, benutzen Sie einfach die transform Methode des trainierten IncrementalPCA Objekt:

new_test_data = icpa.transform(test_data) 
+0

Thank you! Sehr hilfreich @ Bogatron – Alvis