logo

Hauptkomponentenanalyse (PCA)

Mit zunehmender Anzahl von Merkmalen oder Dimensionen in einem Datensatz steigt die Datenmenge, die zum Erhalten eines statistisch signifikanten Ergebnisses erforderlich ist, exponentiell an. Dies kann zu Problemen wie Überanpassung, erhöhter Rechenzeit und verringerter Genauigkeit von Modellen für maschinelles Lernen führen. Dies wird als Fluch der Dimensionalitätsprobleme bezeichnet, die bei der Arbeit mit hochdimensionalen Daten auftreten.

Wenn die Anzahl der Dimensionen zunimmt, nimmt die Anzahl der möglichen Kombinationen von Merkmalen exponentiell zu, was es rechnerisch schwierig macht, eine repräsentative Stichprobe der Daten zu erhalten, und es wird teuer, Aufgaben wie Clustering oder Klassifizierung durchzuführen, weil dies der Fall ist. Darüber hinaus einige maschinelles Lernen Algorithmen können empfindlich auf die Anzahl der Dimensionen reagieren und mehr Daten benötigen, um das gleiche Maß an Genauigkeit zu erreichen wie Daten mit niedrigeren Dimensionen.

Um das anzusprechen Fluch der Dimensionalität , Feature-Engineering Es werden Techniken verwendet, die die Merkmalsauswahl und Merkmalsextraktion umfassen. Dimensionsreduktion ist eine Art Merkmalsextraktionstechnik, die darauf abzielt, die Anzahl der Eingabemerkmale zu reduzieren und gleichzeitig so viele Originalinformationen wie möglich beizubehalten.



In diesem Artikel besprechen wir eine der beliebtesten Techniken zur Dimensionsreduktion, nämlich die Hauptkomponentenanalyse (PCA).

Was ist die Hauptkomponentenanalyse (PCA)?

Hauptkomponentenanalyse (PCA)-Technik wurde vom Mathematiker eingeführt Karl Pearson im Jahr 1901 . Es funktioniert unter der Bedingung, dass, während die Daten in einem höherdimensionalen Raum auf Daten in einem niedrigerdimensionalen Raum abgebildet werden, die Varianz der Daten im niedrigerdimensionalen Raum maximal sein sollte.

Tutorial zur Java-Programmiersprache
  • Hauptkomponentenanalyse (PCA) ist ein statistisches Verfahren, das eine orthogonale Transformation verwendet, die einen Satz korrelierter Variablen in einen Satz unkorrelierter Variablen umwandelt. PCA ist das am weitesten verbreitete Werkzeug in der explorativen Datenanalyse und beim maschinellen Lernen für Vorhersagemodelle. Darüber hinaus,
  • Die Hauptkomponentenanalyse (PCA) ist eine unbeaufsichtigtes Lernen Algorithmustechnik zur Untersuchung der Wechselbeziehungen zwischen einer Reihe von Variablen. Sie wird auch als allgemeine Faktoranalyse bezeichnet, bei der die Regression eine Linie mit der besten Anpassung bestimmt.
  • Das Hauptziel der Hauptkomponentenanalyse (PCA) besteht darin, die Dimensionalität eines Datensatzes zu reduzieren und gleichzeitig die wichtigsten Muster oder Beziehungen zwischen den Variablen beizubehalten, ohne dass die Zielvariablen vorher bekannt sind.

Die Hauptkomponentenanalyse (PCA) wird verwendet, um die Dimensionalität eines Datensatzes zu reduzieren, indem ein neuer Satz von Variablen gefunden wird, der kleiner als der ursprüngliche Satz von Variablen ist, die meisten Informationen der Stichprobe behält und für die Datenerfassung nützlich ist Regression und Klassifizierung von Dateien.

Hauptkomponentenanalyse

  1. Die Hauptkomponentenanalyse (PCA) ist eine Technik zur Dimensionsreduktion, die einen Satz orthogonaler Achsen, sogenannte Hauptkomponenten, identifiziert, die die maximale Varianz in den Daten erfassen. Die Hauptkomponenten sind lineare Kombinationen der ursprünglichen Variablen im Datensatz und werden in absteigender Reihenfolge ihrer Wichtigkeit geordnet. Die von allen Hauptkomponenten erfasste Gesamtvarianz entspricht der Gesamtvarianz im Originaldatensatz.
  2. Die erste Hauptkomponente erfasst die größte Variation in den Daten, die zweite Hauptkomponente erfasst jedoch das Maximum Varianz das ist senkrecht zur ersten Hauptkomponente usw.
  3. Die Hauptkomponentenanalyse kann für verschiedene Zwecke verwendet werden, einschließlich Datenvisualisierung, Merkmalsauswahl und Datenkomprimierung. Bei der Datenvisualisierung kann PCA verwendet werden, um hochdimensionale Daten zwei- oder dreidimensional darzustellen und so die Interpretation zu erleichtern. Bei der Merkmalsauswahl kann PCA verwendet werden, um die wichtigsten Variablen in einem Datensatz zu identifizieren. Bei der Datenkomprimierung kann PCA verwendet werden, um die Größe eines Datensatzes zu reduzieren, ohne dass wichtige Informationen verloren gehen.
  4. Bei der Hauptkomponentenanalyse wird davon ausgegangen, dass die Informationen in der Varianz der Merkmale enthalten sind. Das heißt, je höher die Variation in einem Merkmal, desto mehr Informationen enthalten die Merkmale.

Insgesamt ist PCA ein leistungsstarkes Werkzeug für die Datenanalyse und kann dazu beitragen, komplexe Datensätze zu vereinfachen und sie so leichter zu verstehen und zu bearbeiten.

Schritt-für-Schritt-Erklärung der PCA (Hauptkomponentenanalyse)

Schritt 1: Standardisierung

Zuerst müssen wir standardisieren unseres Datensatzes, um sicherzustellen, dass jede Variable einen Mittelwert von 0 und eine Standardabweichung von 1 hat.

Z = frac{X-mu}{sigma}

Hier,

  • muist der Mittelwert unabhängiger Merkmale mu = left { mu_1, mu_2, cdots, mu_m 
ight }
  • sigmaist der Standardabweichung unabhängiger Merkmale sigma = left { sigma_1, sigma_2, cdots, sigma_m 
ight }

Schritt 2: Berechnung der Kovarianzmatrix

Kovarianz misst die Stärke der gemeinsamen Variabilität zwischen zwei oder mehr Variablen und gibt an, wie stark sie sich im Verhältnis zueinander ändern. Um die Kovarianz zu ermitteln, können wir die Formel verwenden:

cov(x1,x2) = frac{sum_{i=1}^{n}(x1_i-ar{x1})(x2_i-ar{x2})}{n-1}

Der Wert der Kovarianz kann positiv, negativ oder Null sein.

Laden Sie den YouTube VLC Media Player herunter
  • Positiv: Wenn x1 zunimmt, nimmt auch x2 zu.
  • Negativ: Wenn x1 zunimmt, nimmt auch x2 ab.
  • Nullen: Keine direkte Beziehung

Schritt 3: Berechnen Sie die Eigenwerte und Eigenvektoren der Kovarianzmatrix, um die Hauptkomponenten zu identifizieren

Sei A eine quadratische nXn-Matrix und X ein Vektor ungleich Null, für den

AX = lambda X

für einige Skalarwerte lambda. Dann lambdaist bekannt als die Eigenwert der Matrix A und X ist als bekannt Eigenvektor der Matrix A für den entsprechenden Eigenwert.

Es kann auch geschrieben werden als:

egin{aligned} AX-lambda X &= 0  (A-lambda I)X &= 0 end{aligned}

wobei ich die Identitätsmatrix derselben Form wie Matrix A bin. Und die obigen Bedingungen sind nur dann wahr, wenn (A - lambda I)wird nicht invertierbar sein (d. h. singuläre Matrix). Das bedeutet,

|A - lambda I| = 0

Aus der obigen Gleichung können wir die Eigenwerte lambda ermitteln, und daher kann mithilfe der Gleichung der entsprechende Eigenvektor ermittelt werden AX = lambda X.

Wie funktioniert die Hauptkomponentenanalyse (PCA)?

Daher verwendet PCA eine lineare Transformation, die darauf basiert, die größtmögliche Varianz in den Daten mit der geringsten Anzahl von Dimensionen beizubehalten. Es umfasst die folgenden Schritte:

Python3

import> pandas as pd> import> numpy as np> # Here we are using inbuilt dataset of scikit learn> from> sklearn.datasets>import> load_breast_cancer> # instantiating> cancer>=> load_breast_cancer(as_frame>=>True>)> # creating dataframe> df>=> cancer.frame> # checking shape> print>(>'Original Dataframe shape :'>,df.shape)> # Input features> X>=> df[cancer[>'feature_names'>]]> print>(>'Inputs Dataframe shape :'>, X.shape)>
>
>

Ausgabe :

Original Dataframe shape : (569, 31) Inputs Dataframe shape : (569, 30)>

Jetzt wenden wir den ersten Schritt an, nämlich die Standardisierung der Daten. Dazu müssen wir zunächst den Mittelwert und die Standardabweichung jedes Merkmals im Merkmalsraum berechnen.

Python3

# Mean> X_mean>=> X.mean()> # Standard deviation> X_std>=> X.std()> # Standardization> Z>=> (X>-> X_mean)>/> X_std>
>
>

Der Kovarianz Mit der Matrix können wir visualisieren, wie stark die Abhängigkeit zweier Features voneinander im Feature-Raum ist.

Python3

# covariance> c>=> Z.cov()> # Plot the covariance matrix> import> matplotlib.pyplot as plt> import> seaborn as sns> sns.heatmap(c)> plt.show()>
>
>

Ausgabe :

Jetzt berechnen wir die Eigenvektoren Und Eigenwerte für unseren Feature-Bereich, die einen großen Zweck bei der Identifizierung der Hauptkomponenten für unseren Feature-Bereich erfüllen.

Python3

eigenvalues, eigenvectors>=> np.linalg.eig(c)> print>(>'Eigen values: '>, eigenvalues)> print>(>'Eigen values Shape:'>, eigenvalues.shape)> print>(>'Eigen Vector Shape:'>, eigenvectors.shape)>
>
>

Ausgabe :

char in Integer-Java umwandeln
Eigen values:  [1.32816077e+01 5.69135461e+00 2.81794898e+00 1.98064047e+00  1.64873055e+00 1.20735661e+00 6.75220114e-01 4.76617140e-01  4.16894812e-01 3.50693457e-01 2.93915696e-01 2.61161370e-01  2.41357496e-01 1.57009724e-01 9.41349650e-02 7.98628010e-02  5.93990378e-02 5.26187835e-02 4.94775918e-02 1.33044823e-04  7.48803097e-04 1.58933787e-03 6.90046388e-03 8.17763986e-03  1.54812714e-02 1.80550070e-02 2.43408378e-02 2.74394025e-02  3.11594025e-02 2.99728939e-02] Eigen values Shape: (30,) Eigen Vector Shape: (30, 30)>

Sortieren Sie die Eigenwerte in absteigender Reihenfolge und sortieren Sie die entsprechenden Eigenvektoren entsprechend.

Python3

# Index the eigenvalues in descending order> idx>=> eigenvalues.argsort()[::>->1>]> # Sort the eigenvalues in descending order> eigenvalues>=> eigenvalues[idx]> # sort the corresponding eigenvectors accordingly> eigenvectors>=> eigenvectors[:,idx]>
>
>

Erklärte Varianz ist der Begriff, der uns eine Vorstellung davon gibt, wie groß die Gesamtvarianz ist, die durch Auswahl der Hauptkomponenten anstelle des ursprünglichen Merkmalsraums erhalten bleibt.

Python3

explained_var>=> np.cumsum(eigenvalues)>/> np.>sum>(eigenvalues)> explained_var>
>
>

Ausgabe :

array([0.44272026, 0.63243208, 0.72636371, 0.79238506, 0.84734274,  0.88758796, 0.9100953 , 0.92598254, 0.93987903, 0.95156881,  0.961366 , 0.97007138, 0.97811663, 0.98335029, 0.98648812,  0.98915022, 0.99113018, 0.99288414, 0.9945334 , 0.99557204,  0.99657114, 0.99748579, 0.99829715, 0.99889898, 0.99941502,  0.99968761, 0.99991763, 0.99997061, 0.99999557, 1. ])>

Bestimmen Sie die Anzahl der Hauptkomponenten

Hier können wir entweder die Anzahl der Hauptkomponenten eines beliebigen Wertes unserer Wahl berücksichtigen oder die erklärte Varianz begrenzen. Hier gehe ich von einer erklärten Varianz von mehr als 50 % aus. Schauen wir uns an, wie viele Hauptkomponenten darin enthalten sind.

Python3

n_components>=> np.argmax(explained_var>>=> 0.50>)>+> 1> n_components>
>
>

Ausgabe :

Zeichenfolge enthält Java
2>

Projizieren Sie die Daten auf die ausgewählten Hauptkomponenten

  • Finden Sie die Projektionsmatrix. Es handelt sich um eine Matrix von Eigenvektoren, die den größten Eigenwerten der Kovarianzmatrix der Daten entsprechen. Es projiziert den hochdimensionalen Datensatz auf einen niedrigerdimensionalen Unterraum
  • Die Eigenvektoren der Kovarianzmatrix der Daten werden als Hauptachsen der Daten bezeichnet, und die Projektion der Dateninstanzen auf diese Hauptachsen werden als Hauptkomponenten bezeichnet.

Python3

# PCA component or unit matrix> u>=> eigenvectors[:,:n_components]> pca_component>=> pd.DataFrame(u,> >index>=> cancer[>'feature_names'>],> >columns>=> [>'PC1'>,>'PC2'>]> >)> # plotting heatmap> plt.figure(figsize>=>(>5>,>7>))> sns.heatmap(pca_component)> plt.title(>'PCA Component'>)> plt.show()>
>
>

Ausgabe :

  • Dann projizieren wir unseren Datensatz mit der Formel:

egin{aligned} Proj_{P_i}(u) &= frac{P_icdot u}u  &=P_icdot u end{aligned}

  • Die Reduzierung der Dimensionalität wird dann erreicht, indem nur die Achsen (Dimensionen) beibehalten werden, die den größten Teil der Varianz ausmachen, und alle anderen verworfen werden.

Projektion in PCA finden

Python3

# Matrix multiplication or dot Product> Z_pca>=> Z @ pca_component> # Rename the columns name> Z_pca.rename({>'PC1'>:>'PCA1'>,>'PC2'>:>'PCA2'>}, axis>=>1>, inplace>=>True>)> # Print the Pricipal Component values> print>(Z_pca)>
>
>

Ausgabe :

 PCA1 PCA2 0 9.184755 1.946870 1 2.385703 -3.764859 2 5.728855 -1.074229 3 7.116691 10.266556 4 3.931842 -1.946359 .. ... ... 564 6.433655 -3.573673 565 3.790048 -3.580897 566 1.255075 -1.900624 567 10.365673 1.670540 568 -5.470430 -0.670047 [569 rows x 2 columns]>

Die Eigenvektoren der Kovarianzmatrix der Daten werden als Hauptachsen der Daten bezeichnet, und die Projektion der Dateninstanzen auf diese Hauptachsen werden als Hauptkomponenten bezeichnet. Die Reduzierung der Dimensionalität wird dann erreicht, indem nur die Achsen (Dimensionen) beibehalten werden, die den größten Teil der Varianz ausmachen, und alle anderen verworfen werden.

JSON-Dateien lesen

PCA mit Sklearn

Es gibt verschiedene Bibliotheken, in denen der gesamte Prozess der Hauptkomponentenanalyse automatisiert wurde, indem er in einem Paket als Funktion implementiert wurde und wir nur die Anzahl der Hauptkomponenten übergeben müssen, die wir haben möchten. Sklearn ist eine solche Bibliothek, die wie unten gezeigt für die PCA verwendet werden kann.

Python3

# Importing PCA> from> sklearn.decomposition>import> PCA> # Let's say, components = 2> pca>=> PCA(n_components>=>2>)> pca.fit(Z)> x_pca>=> pca.transform(Z)> # Create the dataframe> df_pca1>=> pd.DataFrame(x_pca,> >columns>=>[>'PC{}'>.> >format>(i>+>1>)> >for> i>in> range>(n_components)])> print>(df_pca1)>
>
>

Ausgabe:

 PC1 PC2 0 9.184755 1.946870 1 2.385703 -3.764859 2 5.728855 -1.074229 3 7.116691 10.266556 4 3.931842 -1.946359 .. ... ... 564 6.433655 -3.573673 565 3.790048 -3.580897 566 1.255075 -1.900624 567 10.365673 1.670540 568 -5.470430 -0.670047 [569 rows x 2 columns]>

Wir können anhand des obigen Z_pca-Ergebnisses genau die gleichen Werte ermitteln.

Python3

# giving a larger plot> plt.figure(figsize>=>(>8>,>6>))> plt.scatter(x_pca[:,>0>], x_pca[:,>1>],> >c>=>cancer[>'target'>],> >cmap>=>'plasma'>)> # labeling x and y axes> plt.xlabel(>'First Principal Component'>)> plt.ylabel(>'Second Principal Component'>)> plt.show()>
>
>

Ausgabe:

Python3

# components> pca.components_>
>
>

Ausgabe :

array([[ 0.21890244, 0.10372458, 0.22753729, 0.22099499, 0.14258969,  0.23928535, 0.25840048, 0.26085376, 0.13816696, 0.06436335,  0.20597878, 0.01742803, 0.21132592, 0.20286964, 0.01453145,  0.17039345, 0.15358979, 0.1834174 , 0.04249842, 0.10256832,  0.22799663, 0.10446933, 0.23663968, 0.22487053, 0.12795256,  0.21009588, 0.22876753, 0.25088597, 0.12290456, 0.13178394],  [-0.23385713, -0.05970609, -0.21518136, -0.23107671, 0.18611302,  0.15189161, 0.06016536, -0.0347675 , 0.19034877, 0.36657547,  -0.10555215, 0.08997968, -0.08945723, -0.15229263, 0.20443045,  0.2327159 , 0.19720728, 0.13032156, 0.183848 , 0.28009203,  -0.21986638, -0.0454673 , -0.19987843, -0.21935186, 0.17230435,  0.14359317, 0.09796411, -0.00825724, 0.14188335, 0.27533947]])>

Vorteile der Hauptkomponentenanalyse

  1. Dimensionsreduktion : Die Hauptkomponentenanalyse ist eine beliebte Technik für Dimensionsreduktion Dabei handelt es sich um den Prozess, bei dem die Anzahl der Variablen in einem Datensatz reduziert wird. Durch die Reduzierung der Anzahl der Variablen vereinfacht PCA die Datenanalyse, verbessert die Leistung und erleichtert die Visualisierung von Daten.
  2. Merkmalsauswahl : Hauptkomponentenanalyse kann verwendet werden für Merkmalsauswahl Dabei handelt es sich um den Prozess der Auswahl der wichtigsten Variablen in einem Datensatz. Dies ist beim maschinellen Lernen nützlich, wo die Anzahl der Variablen sehr groß sein kann und es schwierig ist, die wichtigsten Variablen zu identifizieren.
  3. Datenvisualisierung : Hauptkomponentenanalyse kann verwendet werden für Multikollinearität : Die Hauptkomponentenanalyse kann zur Bewältigung verwendet werden Multikollinearität Dies ist ein häufiges Problem bei einer Regressionsanalyse, bei der zwei oder mehr unabhängige Variablen stark korrelieren. PCA kann dabei helfen, die zugrunde liegende Struktur in den Daten zu identifizieren und neue, unkorrelierte Variablen zu erstellen, die im Regressionsmodell verwendet werden können.
  4. Lärmminderung : Die Hauptkomponentenanalyse kann verwendet werden, um das Rauschen in Daten zu reduzieren. Durch Entfernen der Hauptkomponenten mit geringer Varianz, von denen angenommen wird, dass sie Rauschen darstellen, kann die Hauptkomponentenanalyse das Signal-Rausch-Verhältnis verbessern und die Identifizierung der zugrunde liegenden Struktur in den Daten erleichtern.
  5. Datenkompression : Die Hauptkomponentenanalyse kann zur Datenkomprimierung verwendet werden. Durch die Darstellung der Daten mithilfe einer geringeren Anzahl von Hauptkomponenten, die den größten Teil der Variation in den Daten erfassen, kann PCA den Speicherbedarf reduzieren und die Verarbeitung beschleunigen.
  6. Ausreißererkennung : Die Hauptkomponentenanalyse kann zur Ausreißererkennung verwendet werden. Ausreißer sind Datenpunkte, die sich deutlich von den anderen Datenpunkten im Datensatz unterscheiden. Die Hauptkomponentenanalyse kann diese Ausreißer identifizieren, indem sie nach Datenpunkten sucht, die weit von den anderen Punkten im Hauptkomponentenraum entfernt sind.

Nachteile der Hauptkomponentenanalyse

  1. Interpretation der Hauptkomponenten : Die durch die Hauptkomponentenanalyse erstellten Hauptkomponenten sind lineare Kombinationen der ursprünglichen Variablen und es ist oft schwierig, sie im Hinblick auf die ursprünglichen Variablen zu interpretieren. Dies kann es schwierig machen, anderen die Ergebnisse der PCA zu erklären.
  2. Datenskalierung : Die Hauptkomponentenanalyse reagiert empfindlich auf den Umfang der Daten. Wenn die Daten nicht richtig skaliert sind, funktioniert PCA möglicherweise nicht richtig. Daher ist es wichtig, die Daten vor der Anwendung der Hauptkomponentenanalyse zu skalieren.
  3. Informationsverlust : Die Hauptkomponentenanalyse kann zu Informationsverlusten führen. Während die Hauptkomponentenanalyse die Anzahl der Variablen reduziert, kann sie auch zu Informationsverlusten führen. Der Grad des Informationsverlusts hängt von der Anzahl der ausgewählten Hauptkomponenten ab. Daher ist es wichtig, die Anzahl der zu behaltenden Hauptkomponenten sorgfältig auszuwählen.
  4. Nichtlineare Beziehungen : Die Hauptkomponentenanalyse geht davon aus, dass die Beziehungen zwischen Variablen linear sind. Wenn jedoch nichtlineare Beziehungen zwischen Variablen bestehen, funktioniert die Hauptkomponentenanalyse möglicherweise nicht gut.
  5. Rechenkomplexität : Die Berechnung der Hauptkomponentenanalyse kann bei großen Datensätzen rechenintensiv sein. Dies gilt insbesondere dann, wenn die Anzahl der Variablen im Datensatz groß ist.
  6. Überanpassung : Die Hauptkomponentenanalyse kann manchmal dazu führen Überanpassung Dies ist der Fall, wenn das Modell zu gut zu den Trainingsdaten passt und bei neuen Daten schlecht abschneidet. Dies kann passieren, wenn zu viele Hauptkomponenten verwendet werden oder wenn das Modell auf einem kleinen Datensatz trainiert wird.

Häufig gestellte Fragen (FAQs)

1. Was ist die Hauptkomponentenanalyse (PCA)?

PCA ist eine Technik zur Dimensionsreduktion, die in der Statistik und beim maschinellen Lernen verwendet wird, um hochdimensionale Daten in eine niedrigerdimensionale Darstellung umzuwandeln und dabei die wichtigsten Informationen zu bewahren.

2. Wie funktioniert eine PCA?

Hauptkomponenten sind lineare Kombinationen der ursprünglichen Merkmale, die PCA findet und verwendet, um die größte Varianz in den Daten zu erfassen. In der Reihenfolge der von ihnen erklärten Varianzgröße sind diese orthogonalen Komponenten angeordnet.

3. Wann sollte PCA angewendet werden?

Die Verwendung von PCA ist bei der Arbeit mit multikollinearen oder hochdimensionalen Datensätzen von Vorteil. Merkmalsextraktion, Rauschunterdrückung und Datenvorverarbeitung sind wichtige Einsatzmöglichkeiten dafür.

4. Wie werden Hauptkomponenten interpretiert?

Neue Achsen werden im Merkmalsraum durch jede Hauptkomponente dargestellt. Ein Indikator für die Bedeutung einer Komponente bei der Erfassung der Datenvariabilität ist ihre Fähigkeit, eine größere Varianz zu erklären.

5. Welche Bedeutung haben Hauptkomponenten?

Hauptkomponenten stellen die Richtungen dar, in denen die Daten am stärksten variieren. Die ersten paar Komponenten erfassen in der Regel den Großteil der Datenvarianz und ermöglichen so eine prägnantere Darstellung.