Principal Component Analysis

Principal Component Analysis (PCA) ist ein Algorithmus bzw. Verfahren aus dem Bereich des unüberwachten Lernens, der zur Dimensionsreduktion eines Datensatzes genutzt werden kann. Dimensionsreduktion kann bei hochdimensionalen Datensätzen notwendig werden, da die Abstände zwischen Punkten im hochdimensionalen Raum schnell extrem groß werden. Um bei hochdimensionalen Datensätzen zuverlässige Vorhersagen treffen zu können, muss der Trainingsdatensatz extrem groß sein. In diesem Fall kann Dimensionsreduktion ein Ansatz sein, um Overfitting (die Überanpassung eines Modells an den Trainings Datensatz) zu vermeiden. 

Für die PCA werden dazu die Daten werden so auf eine niedrige Hyperebene projiziert, dass die größtmögliche Varianz erhalten bleibt, auf diese Weise gehen möglichst wenige Informationen verloren. Orthogonal zu dieser Achse wird eine zweite Achse identifiziert, die die meiste verbleibende Varianz abbildet, orthogonal zu den beiden ersten eine dritte (im drei- oder mehrdimensionalen Raum), etc., bis alle Dimensionen abgebildet sind.  Diese erste, zweite, … und i-te Achse sind die erste, zweite, … Hauptkomponente oder Principal Component, sie sind lineare Kombinationen der ursprünglichen Features. Diese Principal Components sind orthogonal zueinander und damit linear unabhängig. Die erste Principal Component bildet garantiert die meiste Varianz der Daten und damit den größten Teil der enthaltenen Informationen ab, die zweite die zweitmeiste usw. 

Bestimmung der Hauptkomponenten #

Die Principal Components (PCs) werden über die Singular Value Decomposition (SVD) ermittelt und  ist eine Methode des Unsupervised Learnings, die Muster in den Daten findet. So können aus einer PCA Aussagen über Kollinearität von Features getroffen werden. Sie kann als Kompressionsverfahren genutzt werden, oder um mehrdimensionale Daten im zweidimensionalen visuell darzustellen. Für die Principal Component Regression werden die Principal Components als Grundlage für eine Regression genutzt.

Zunächst wird der ursprüngliche Datensatz durch eine Principal Component Analysis transformiert und dann eine lineare Regression durchgeführt. Da die meiste Varianz vom ersten Principal Component, die zweitmeiste Varianz vom zweiten Principal Component, usw. erklärt wird, ist es möglich, nur die ersten Principal Components für die Regression zu nutzen und dennoch den größten Teil der Varianz mit einzubeziehen. Auf diese Art wird die Regression auch weniger komplex und kann Overfitting vermeiden, wenn die letzten Principal Components nur Noise enthalten. Es handelt sich also um eine Art von Regularisierung. Dies ist insbesondere bei Datensätzen mit multilinearen Features hilfreich. Indem weniger Principal Components einbezogen werden, kann außerdem die Laufzeit verringert und der “Fluch der Dimensionalität” umgangen werden.

2-dimensional dataset with principal components
Datensatz mit zwei Features und darin eingezeichnet die Achsen der Hauptkomponenten-Analyse (Quelle)
plot pcr vs pls
Ergebnisse der Hauptkomponenten-Analyse (Quelle)

Die Anzahl der einzubeziehenden Principal Components wird zu einem Hyperparameter, den es zu optimieren gilt. Wenn alle Principal Components genutzt werden, werden alle Informationen des ursprünglichen Datensatzes mit einbezogen. Die Ergebnisse sind die gleichen wie die einer linearen Regression auf dem ursprünglichen Datensatz.

Weiterführende Links: 
Explanation of Principal Component Analysis: https://builtin.com/data-science/step-step-explanation-principal-component-analysis
Principal Component Analysis: https://towardsdatascience.com/a-one-stop-shop-for-principal-component-analysis-5582fb7e0a9c
Géron, Aurélien (2019): Hands-on machine learning with Scikit-Learn, Keras, and TensorFlow. Concepts, tools, and techniques to build intelligent systems. Second edition.

Schreibe einen Kommentar