Ich verwende PCA, um die Dimensionalität eines N-dimensionalen Datensatzes zu reduzieren, aber ich möchte robust zu großen Ausreißern bauen, also habe ich habe nach robusten PCA-Codes gesucht.Verwendung der robusten PCA-Ausgabe als Principal-Komponente (Eigen) Vektoren von traditionellen PCA
Für traditionelle PCA verwende ich Pythons sklearn.decomposition.PCA, die die Hauptkomponenten als Vektoren zurückgibt, auf die ich dann meine Daten projizieren kann (um klar zu sein, ich habe auch meine eigenen Versionen mit SVD codiert also ich weiß, wie die Methode funktioniert). Ich habe ein paar vorcodierte RPCA-Python-Codes gefunden (wie https://github.com/dganguli/robust-pca und https://github.com/jkarnows/rpcaADMM).
Der erste Code basiert auf Candes et al. (2009) -Methode und gibt niedrigrangige L- und dünn besetzte S-Matrizen für einen Datensatz D zurück. Der zweite Code verwendet die ADMM-Methode der Matrixzerlegung (Parikh, N., & Boyd, S. 2013) und gibt X_1, X_2, X_3 Matrizen zurück . Ich muss zugeben, es fällt mir sehr schwer herauszufinden, wie man diese mit den Hauptachsen verbindet, die von einem Standard-PCM-Algorithmus zurückgegeben werden. Kann jemand irgendeine Anleitung geben?
Insbesondere in einem Datensatz X habe ich eine Wolke von N 3-D-Punkten. Ich betreibe es durch PCA:
pca=sklean.decompose.PCA(n_components=3)
pca.fit(X)
comps=pca.components_
und diese drei Komponenten sind 3-D-Vektoren, die die neue Basis definieren, auf die ich alle meine Punkte projizieren. Mit Robust PCA bekomme ich Matrizen L + S = X. Läuft man dann pca.fit (L)? Ich hätte gedacht, dass RPCA mir die Eigenvektoren zurückgegeben hätte, aber interne Schritte haben würde, um Ausreißer als Teil des Aufbaus der Kovarianzmatrix oder SVD auszuführen.
Vielleicht, was ich als "Robust PCA" denke, ist nicht, wie andere Leute es verwenden/codieren?
Ich denke, es würde helfen, wenn Sie erklärt, was das Problem der diese Matrizen auf die Vektoren der Verbindungs Standard-PCM-Algorithmus ist. – ImportanceOfBeingErnest
Ich habe zu der Frage hinzugefügt, um klarer zu sein. – AstroBen