PCA in Sklearn

PCA in Sklearn
PCA (Hauptkomponentenanalyse) ist ein mathematischer Algorithmus, der die Beobachtungen korrelierter Variablen in einen Satz von Werten linear nicht korrelierter Variablen, die als Hauptkomponenten bezeichnet werden. PCA ist einer der beliebtesten Algorithmen für die Reduzierung der Dimensionalität. Karl Pearson (Li, 1901) erfand PCA 1901 und definierte sie als „Identifizierung von Linien und Ebenen mit am engsterem Anpassung an Punktesysteme im Weltraum“ “.

Wir werden die Details von PCA und seiner Implementierung mit Sklearn diskutieren.

Was ist PCA?

Die Hauptkomponentenanalyse (PCA) ist eine Datenreduzierungsmethode. Wenn Sie für jeden Fall viele Maßnahmen haben, einige von ihnen sind jedoch miteinander korreliert, wird diese Methode verwendet. Hauptkomponenten verwenden die Korrelation, um die Anzahl der Variablen zu verringern, die erforderlich sind, um jede Situation je nach den Ergebnissen angemessen zu charakterisieren. Eine Hauptkomponentenanalyse wird jedoch wahrscheinlich zeigen, dass trotz der zehn Maßnahmen nur drei Variablen gemessen wurden. Es ist wahrscheinlicher, dass sie Sprint-, Springen- und Wurffähigkeit haben-drei Merkmale als zehn Merkmale. Die Hauptkomponenten liefern Koeffizienten für jede der zehn Bewertungen, was angibt, wie viel jede Punktzahl in den neuen Lauf, Sprung und Wurfzahlen eingeht. Die drei zusammengesetzten Bewertungen würden Ihnen auch zeigen, wie viel von der Gesamtvariation berücksichtigt wird. Die Arbeit mit drei Variablen ist einfacher als mit 10 zu arbeiten. Wenn sie den größten Teil der Schwankungen ausmachen, haben Sie alle Informationen aus den zehn Punktzahlen in drei erfasst.

Die Technik wird viel nützlicher, wenn Sie Hunderte von Messungen haben. Wir können jedoch auf ein Problem stoßen: Einige unserer Eingabeeigenschaften sind verbunden. Abhängig von der Stärke der Assoziation könnte dies darauf hinweisen. PCA bietet eine systematische Technik, um festzustellen, welche Funktionskombinationen für die Datenvarianz eher verantwortlich sind als für andere und einige Empfehlungen zur Reduzierung der Anzahl der Dimensionen in unserer Eingabe liefert. Dies ist nicht zu heißen, dass PCA uns mitteilt, welche Eigenschaften nicht erforderlich sind. Es zeigt uns vielmehr, wie wir Funktionen in einen kleineren Unterraum integrieren können, ohne (viel) Informationen zu verlieren. Traditionell war es nützlich, die Anzahl der Dimensionen vor dem Fütterung von Daten in ML -Algorithmen zu reduzieren, da dies die Komplexität und die Verarbeitungszeit verkürzt. Ich sollte jedoch darauf hinweisen, dass PCA kein Allheilmittel, sondern ein fantastisches Werkzeug ist, wenn es funktioniert.

Beispiel 1

Betrachten Sie den Fall des Datensatzes D, der zweidimensionale Daten entlang der enthält y = x Linie. Diese Daten werden in zwei Dimensionen mit einem dargestellt X Und y Punkt für jeden Datenpunkt. Der Vektor würde als die Richtung der maximalen Varianz über PCA identifiziert und dieser Vektor würde als neue X-Achse verwendet. Wir können jetzt den Datensatz D in nur einer Dimension darstellen. Infolgedessen ist PCA eine Dimensionalitätsreduktionstechnik, die sich auf die Lokalisierung der größten Varianzvektoren konzentriert.

Beispiel 2

Nehmen wir an, Ihre Daten befinden sich in zwei Dimensionen in einer Linie. In diesem Fall erkennt PCA schnell, dass Ihr X und Y zugeordnet sind, und entwickelt ein neues orthogonales Koordinatensystem, um die Varianz in der ersten Koordinate zu maximieren. Infolgedessen hat die zweite (primäre) Komponente keine Vorhersagefähigkeit und Sie können sie wahrscheinlich aus Ihren Modellen entfernen, ohne zu viel Schaden zu verursachen. Sie haben es geschafft, zwei Dimensionen in eine zu projizieren, ohne in dieser Methode viele Informationen zu verlieren. Während Sie dies in zwei Dimensionen visuell tun können, ist es möglicherweise etwas schwieriger in der N Abmessungen.

Merkmale von PCA

Transformation der Daten in eine vergleichbare Skala. Einige Funktionen in einem Datensatz können extrem hoch sein (1 bis 100). Im Gegensatz dazu sind andere extrem niedrig (0 bis 1), was dazu führt, dass hohe Merkmale einen größeren Einfluss auf die Ausgangsvorhersagen haben als Daten mit niedrigen Merkmalen.

Berechnen Sie die Datenkovarianz, um die Korrelationen zwischen allen Merkmalen zu identifizieren.

Finden Sie dann die Eigenwerte und Eigenvektoren der Kovarianzmatrix. Danach sortieren Sie die Eigenvektoren, indem Sie die Eigenwerte verringern und die K -Eigenvektoren mit den höchsten Eigenwerten auswählen.

Verwenden Sie diese Eigenvektormatrix, um die Proben in den neuen Unterraum zu transformieren.

Es kann verwendet werden, um herauszufinden, ob es Korrelationen zwischen Ihren Variablen gibt. Wenn Sie dreidimensionale Variablen und ihre am besten geeignete zweidimensionale Ebene genau erfassen.

Anstatt n-dimensionale Datenpunkte zu übertragen, können Sie PCA verwenden, um m-dimensionale Koordinaten in einem am besten geeigneten Unterraum zu kommunizieren, wenn Sie Daten vermitteln müssen (plus der Unterraumgleichung). Es kann auch verwendet werden, um Daten zu komprimieren. Wenn die Passform perfekt ist, verlieren Sie keine Informationen. Wenn es in der Nähe ist, werden Sie ein bisschen verlieren.

Da viele Algorithmen für maschinelles Lernen am besten funktionieren, wenn jede Variable neue Informationen hinzufügt, wird sie häufig im maschinellen Lernen verwendet, um redundante Variablen in Ihrem Datensatz zu finden und zu löschen.

Es findet nicht immer eine tatsächliche, nichtlineare Duplikation. Wenn Sie PCA statistisch interpretieren, müssen Sie einige Annahmen über die zugrunde liegenden Beziehungen zwischen den Variablen / ihrem Rauschen treffen. Trotzdem ist es ein sehr wertvolles Werkzeug, auch wenn einige Annahmen nicht ideal sind.

Implementierung von PCA in Sklearn

Numph als NP importieren
von Sklearn.Zersetzung import PCA
X = np.Array ([[1, 2], [2, 1], [3, 2], [2, 3], [4, 5], [5, 4]])
PCA = PCA (n_components = 2)
PCA.fit (x)
Druck (PCA.erklärt_varianz_ratio_)
Druck (PCA.Singular_Values_)

Ausgang
[0.86153846 0.13846154]
[4.3204938 1.73205081]

Abschluss

In diesem Artikel wurde die Hauptkomponentenanalyse und ihre Implementierung mit sklearn erörtert. Sklearn ist eine beliebte Python -Bibliothek, die zur Entwicklung maschineller Lernmodelle verwendet wird. PCA reduziert den Fluch der Dimensionalität, indem hochwertige Daten in niedrigere Dimensionen geleitet werden, ohne viele Informationen zu verlieren. PCA kann mit sklearn mit dem 'sklearn implementiert werden.Zersetzungsklasse.