Principal Component Analysis (PCA)
Die Hauptkomponentenanalyse (PCA) projiziert Daten auf orthogonale Richtungen, die den größten Teil der Varianz erfassen. So funktioniert sie, wie du k auswählst, Anwendungen und Code.
Die Hauptkomponentenanalyse (PCA) ist ein lineares Verfahren zur Dimensionsreduktion, das Daten in neue, unkorrelierte Variablen, sogenannte Hauptkomponenten, umwandelt. Diese werden danach geordnet, wie viel Varianz der Daten sie jeweils erfassen. Werden nur die ersten Komponenten beibehalten, lassen sich viele korrelierte Merkmale zu einer kleinen Anzahl zusammenfassen, während der Großteil der Informationen erhalten bleibt. Karl Pearson führte das Verfahren 1901 ein; Harold Hotelling entwickelte es weiter und gab ihm 1933 seinen Namen. PCA ist ein unüberwachtes Verfahren, das Beschriftungen ignoriert. Es dient als gängiger Schritt der Datenvorverarbeitung, als schnelle Möglichkeit, hochdimensionale Daten in zwei oder drei Dimensionen zu visualisieren, und als Ausgangsverfahren zur Komprimierung und Rauschunterdrückung beim maschinellen Lernen.
So funktioniert PCA#
PCA zentriert zunächst jedes Merkmal, indem der Mittelwert abgezogen wird. Die erste Hauptkomponente zeigt in die Richtung, in der die zentrierten Daten am stärksten streuen. Jede weitere Komponente zeigt in die Richtung der größten verbleibenden Varianz und steht senkrecht auf allen vorherigen Komponenten. Die Komponenten sind die Eigenvektoren der Kovarianzmatrix der Daten, und die zugehörigen Eigenwerte entsprechen den Varianzen entlang dieser Vektoren. Bibliotheken berechnen beide mithilfe einer Singulärwertzerlegung (SVD) der zentrierten Daten. Das ist numerisch stabiler, als die Kovarianzmatrix zu bilden. Werden die Daten auf die ersten k Komponenten projiziert, ergibt sich die reduzierte Darstellung. Durch Rücktransformation entsteht eine Näherung der ursprünglichen Daten. Unter allen linearen Projektionen auf k Dimensionen ergibt die Projektion von PCA den kleinsten quadrierten Rekonstruktionsfehler.
Die Varianz hängt von den Maßeinheiten ab. Daher werden Merkmale mit unterschiedlichen Skalen, etwa Einkommen in Euro und Alter in Jahren, zuerst standardisiert. Andernfalls dominiert das Merkmal mit dem größten Zahlenbereich die erste Komponente. Die Anzahl der Komponenten k wird üblicherweise anhand des Anteils der erklärten Varianz festgelegt: Komponenten werden so lange beibehalten, bis ihr kumulierter Anteil an der Varianz einen Zielwert wie 95 % erreicht. Eine andere Möglichkeit ist der Knick im Scree-Plot der Varianz pro Komponente.
Die PCA von Scikit-learn akzeptiert direkt einen Zielwert für die Varianz. Dieses Beispiel komprimiert handgeschriebene Ziffernbilder mit einer Auflösung von 8 × 8 Pixeln:
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
# 1,797 handwritten digits, each an 8x8 image flattened to 64 pixel values
X, _ = load_digits(return_X_y=True)
# Keep the fewest components that explain 95% of the variance
pca = PCA(n_components=0.95)
X_reduced = pca.fit_transform(X)
print(f"{X.shape[1]} features -> {pca.n_components_} components")
print(f"First two components: {pca.explained_variance_ratio_[:2].sum():.1%} of the variance")29 Komponenten bewahren 95 % der Varianz der 64 Pixel und halbieren so die Eingabegröße mehr als. Die ersten beiden Komponenten allein enthalten 28,5 %. Die Varianz konzentriert sich auf wenige Komponenten, weil benachbarte Pixel stark korreliert sind und sich die Pixel am linken und rechten Bildrand kaum verändern.
Einschränkungen#
PCA erkennt nur lineare Strukturen. Deshalb benötigt ein Datensatz auf einer gekrümmten Fläche mehr Komponenten als seine tatsächliche Dimension. Jede Komponente vermischt alle ursprünglichen Merkmale, wodurch sie schwer zu interpretieren ist, und quadrierte Abstände lassen sich von wenigen Ausreißern verzerren. Eine hohe Varianz bedeutet auch nicht automatisch einen hohen Nutzen: Eine Richtung mit geringer Varianz kann das Signal enthalten, das zwei Klassen voneinander trennt. Wird sie verworfen, kann das einem Klassifikator schaden, auch wenn dabei nur wenig Varianz verloren geht. Die Reduktion vieler Merkmale auf wenige hilft weiterhin beim Umgang mit dem Fluch der Dimensionalität, bei dem Modelle mit steigender Merkmalszahl wesentlich mehr Stichproben benötigen, um zu generalisieren, und begrenzt Overfitting, wenn es viele Merkmale und nur wenige Stichproben gibt.
PCA für Embeddings in der Bildverarbeitung#
Visionsmodelle beschreiben jedes Bild oder Objekt mit einem Embedding, einem Vektor aus Hunderten von Zahlen. PCA ist ein gängiger erster Schritt, um diese Vektoren darzustellen, zu clustern oder zu komprimieren. YOLO26-Modelle geben über model.embed() ein Embedding pro Bild zurück. Die Projektion dieser Vektoren auf ihre ersten beiden Hauptkomponenten ergibt eine schnelle lineare Darstellung dafür, wie ein individuell trainiertes Modell seine Klassen trennt. Werden gespeicherte Embeddings auf weniger Dimensionen reduziert, schrumpft außerdem der Index einer Vektordatenbank, und die Vektorsuche wird schneller.
Anwendungen#
- Gesichtserkennung: Die Eigenfaces-Methode von Turk und Pentland (1991) stellte jedes Gesicht durch seine Koordinaten auf den Hauptkomponenten einer Menge von Gesichtsbildern dar und erkannte Personen durch den Vergleich dieser Koordinaten.
- Anomalieerkennung: Bei der Überwachung industrieller Prozesse wird PCA an Sensordaten aus dem Normalbetrieb angepasst. Ein Alarm wird ausgelöst, wenn sich ein neuer Messwert nur schlecht rekonstruieren lässt oder weit außerhalb der beibehaltenen Komponenten liegt.
- Populationsgenetik: PCA von Genotypdaten fasst Abstammungsmuster zusammen. In einer Studie aus dem Jahr 2008 mit 1.387 Europäern bildeten die ersten beiden Komponenten eine erkennbare Karte Europas ab.
- Zinsänderungsrisiko: Änderungen der Renditekurve von Anleihen werden von drei Komponenten dominiert, die Analysten Niveau, Steigung und Krümmung nennen. Deshalb verfolgen Risikomodelle drei Werte statt jeder einzelnen Laufzeit.
PCA im Vergleich zu verwandten Verfahren#
- t-SNE und UMAP: Nichtlineare Verfahren zur Visualisierung, die lokale Nachbarschaften erhalten, sodass sich Cluster deutlicher trennen. Abstände zwischen weit auseinanderliegenden Clustern verlieren dabei jedoch ihre Bedeutung. Das t-SNE von Scikit-learn kann neue Punkte nicht transformieren, während eine angepasste PCA neue Daten mit einer einzigen Matrixmultiplikation projiziert.
- Autoencoder: Neuronale Netze, die Daten komprimieren und rekonstruieren und nichtlineare Strukturen erlernen können. Ein linearer Autoencoder, der mit dem quadratischen Fehler trainiert wird, erlernt denselben Unterraum wie PCA.
- Merkmalsauswahl und Merkmalsextraktion: Bei der Merkmalsauswahl wird eine Teilmenge der ursprünglichen Spalten beibehalten, die dadurch interpretierbar bleiben. PCA, ein klassisches Verfahren zur Merkmalsextraktion, erzeugt dagegen neue Merkmale, die alle ursprünglichen Merkmale kombinieren.
- Lineare Diskriminanzanalyse (LDA): Ein verwandtes überwachtes Verfahren, das Richtungen auswählt, welche die Trennung zwischen Klassen statt der Gesamtvarianz maximieren. Es liefert höchstens eine Komponente weniger als die Anzahl der Klassen.










