logo

Hauptkomponentenanalyse mit Python

Hauptkomponentenanalyse ist im Grunde ein statistisches Verfahren zur Umwandlung einer Reihe von Beobachtungen möglicherweise korrelierter Variablen in eine Reihe von Werten linear unkorrelierter Variablen.

Jede der Hauptkomponenten wird so gewählt, dass sie den Großteil der noch verfügbaren Varianz beschreibt und alle diese Hauptkomponenten orthogonal zueinander sind. Bei allen Hauptkomponenten weist die erste Hauptkomponente eine maximale Varianz auf.



Verwendungsmöglichkeiten von PCA:

  1. Es wird verwendet, um Zusammenhänge zwischen Variablen in den Daten zu finden.
  2. Es dient der Interpretation und Visualisierung von Daten.
  3. Die Anzahl der Variablen nimmt ab, was die weitere Analyse vereinfacht.
  4. Es wird häufig verwendet, um genetische Distanz und Verwandtschaft zwischen Populationen zu visualisieren.


Diese werden im Wesentlichen auf einer quadratischen symmetrischen Matrix durchgeführt. Es kann sich um eine reine Quadratsummen- und Kreuzproduktmatrix, eine Kovarianzmatrix oder eine Korrelationsmatrix handeln. Wenn sich die individuelle Varianz stark unterscheidet, kommt eine Korrelationsmatrix zum Einsatz.

Ziele von PCA:



  1. Es handelt sich im Grunde um ein nicht abhängiges Verfahren, bei dem der Attributraum von einer großen Anzahl von Variablen auf eine kleinere Anzahl von Faktoren reduziert wird.
  2. Bei PCA handelt es sich grundsätzlich um einen Dimensionsreduktionsprozess, es gibt jedoch keine Garantie dafür, dass die Dimension interpretierbar ist.
  3. Die Hauptaufgabe bei dieser PCA besteht darin, eine Teilmenge von Variablen aus einer größeren Menge auszuwählen, basierend darauf, welche Originalvariablen die höchste Korrelation mit dem Kapitalbetrag aufweisen.
  4. Identifizieren von Mustern: PCA kann dabei helfen, Muster oder Beziehungen zwischen Variablen zu identifizieren, die in den Originaldaten möglicherweise nicht erkennbar sind. Durch die Reduzierung der Dimensionalität der Daten kann PCA zugrunde liegende Strukturen aufdecken, die für das Verständnis und die Interpretation der Daten hilfreich sein können.
  5. Merkmalsextraktion: PCA kann verwendet werden, um Merkmale aus einer Reihe von Variablen zu extrahieren, die informativer oder relevanter sind als die ursprünglichen Variablen. Diese Funktionen können dann bei der Modellierung oder anderen Analyseaufgaben verwendet werden.
  6. Datenkomprimierung: PCA kann zum Komprimieren großer Datensätze verwendet werden, indem die Anzahl der zur Darstellung der Daten erforderlichen Variablen reduziert wird und gleichzeitig so viele Informationen wie möglich erhalten bleiben.
  7. Rauschunterdrückung: PCA kann verwendet werden, um das Rauschen in einem Datensatz zu reduzieren, indem die Hauptkomponenten identifiziert und entfernt werden, die den verrauschten Teilen der Daten entsprechen.
  8. Visualisierung: PCA kann verwendet werden, um hochdimensionale Daten in einem niedrigerdimensionalen Raum zu visualisieren und so die Interpretation und das Verständnis zu erleichtern. Durch die Projektion der Daten auf die Hauptkomponenten können Muster und Beziehungen zwischen Variablen einfacher visualisiert werden.

Hauptachsenmethode: PCA sucht grundsätzlich nach einer linearen Kombination von Variablen, damit wir die maximale Varianz aus den Variablen extrahieren können. Sobald dieser Prozess abgeschlossen ist, wird er entfernt und nach einer anderen linearen Kombination gesucht, die eine Erklärung für den maximalen Anteil der verbleibenden Varianz liefert, die im Wesentlichen zu orthogonalen Faktoren führt. Bei dieser Methode analysieren wir die Gesamtvarianz.

Eigenvektor: Es ist ein Vektor ungleich Null, der nach der Matrixmultiplikation parallel bleibt. Nehmen wir an, x sei ein Eigenvektor der Dimension r der Matrix M mit der Dimension r*r, wenn Mx und x parallel sind. Dann müssen wir Mx=Ax lösen, wobei sowohl x als auch A unbekannt sind, um Eigenvektor und Eigenwerte zu erhalten.
Unter Eigenvektoren können wir sagen, dass die Hauptkomponenten sowohl die gemeinsame als auch die eindeutige Varianz der Variablen zeigen. Im Grunde handelt es sich um einen varianzorientierten Ansatz, der darauf abzielt, die Gesamtvarianz und Korrelation mit allen Komponenten zu reproduzieren. Die Hauptkomponenten sind im Wesentlichen die linearen Kombinationen der ursprünglichen Variablen, gewichtet nach ihrem Beitrag zur Erklärung der Varianz in einer bestimmten orthogonalen Dimension.

Eigene Werte: Man bezeichnet sie im Grunde als charakteristische Wurzeln. Es misst grundsätzlich die Varianz aller Variablen, die durch diesen Faktor erklärt wird. Das Verhältnis der Eigenwerte ist das Verhältnis der erklärenden Bedeutung der Faktoren in Bezug auf die Variablen. Wenn der Faktor niedrig ist, trägt er weniger zur Erklärung der Variablen bei. Mit einfachen Worten: Es misst die Varianzmenge in der gesamten gegebenen Datenbank, die auf den Faktor zurückzuführen ist. Wir können den Eigenwert des Faktors als Summe seiner quadrierten Faktorladung für alle Variablen berechnen.



Java-String-Teilzeichenfolge

Lassen Sie uns nun die Hauptkomponentenanalyse mit Python verstehen.

Um den in der Implementierung verwendeten Datensatz abzurufen, klicken Sie auf Hier .

Schritt 1: Importieren der Bibliotheken

Python
# importing required libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd>

Schritt 2: Importieren des Datensatzes

Importieren Sie den Datensatz und verteilen Sie den Datensatz zur Datenanalyse in X- und Y-Komponenten.

Python
# importing or loading the dataset dataset = pd.read_csv('wine.csv') # distributing the dataset into two components X and Y X = dataset.iloc[:, 0:13].values y = dataset.iloc[:, 13].values>


Schritt 3: Aufteilen des Datensatzes in den Trainingssatz und den Testsatz

Python
# Splitting the X and Y into the # Training set and Testing set from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)>

Schritt 4: Funktionsskalierung

Durchführung des Vorverarbeitungsteils des Trainings- und Testsatzes, z. B. Anpassen der Standardskala.

df loc
Python
# performing preprocessing part from sklearn.preprocessing import StandardScaler sc = StandardScaler() X_train = sc.fit_transform(X_train) X_test = sc.transform(X_test)>

Schritt 5: Anwenden der PCA-Funktion

Anwenden der PCA-Funktion auf den Trainings- und Testsatz zur Analyse.

Python
# Applying PCA function on training # and testing set of X component from sklearn.decomposition import PCA pca = PCA(n_components = 2) X_train = pca.fit_transform(X_train) X_test = pca.transform(X_test) explained_variance = pca.explained_variance_ratio_>

Schritt 6: Anpassen der logistischen Regression an den Trainingssatz

Python
# Fitting Logistic Regression To the training set from sklearn.linear_model import LogisticRegression classifier = LogisticRegression(random_state = 0) classifier.fit(X_train, y_train)>

Ausgabe:

Schritt 7: Vorhersage des Testsatzergebnisses

Python
# Predicting the test set result using  # predict function under LogisticRegression  y_pred = classifier.predict(X_test)>


Schritt 8: Erstellen der Verwirrungsmatrix

bestes Auto der Welt
Python
# making confusion matrix between # test set of Y and predicted value. from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_test, y_pred)>


Schritt 9: Vorhersage des Trainingssatzergebnisses

Python
# Predicting the training set # result through scatter plot  from matplotlib.colors import ListedColormap X_set, y_set = X_train, y_train X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01), np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01)) plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape), alpha = 0.75, cmap = ListedColormap(('yellow', 'white', 'aquamarine'))) plt.xlim(X1.min(), X1.max()) plt.ylim(X2.min(), X2.max()) for i, j in enumerate(np.unique(y_set)): plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1], color = ListedColormap(('red', 'green', 'blue'))(i), label = j) plt.title('Logistic Regression (Training set)') plt.xlabel('PC1') # for Xlabel plt.ylabel('PC2') # for Ylabel plt.legend() # to show legend # show scatter plot plt.show()>

Ausgabe:

Schritt 10: Visualisierung der Testsatzergebnisse

Python
# Visualising the Test set results through scatter plot from matplotlib.colors import ListedColormap X_set, y_set = X_test, y_test X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01), np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01)) plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape), alpha = 0.75, cmap = ListedColormap(('yellow', 'white', 'aquamarine'))) plt.xlim(X1.min(), X1.max()) plt.ylim(X2.min(), X2.max()) for i, j in enumerate(np.unique(y_set)): plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1], color = ListedColormap(('red', 'green', 'blue'))(i), label = j) # title for scatter plot plt.title('Logistic Regression (Test set)') plt.xlabel('PC1') # for Xlabel plt.ylabel('PC2') # for Ylabel plt.legend() # show scatter plot plt.show()>

Wir können die Daten im neuen Hauptkomponentenraum visualisieren:

Python
# plot the first two principal components with labels y = df.iloc[:, -1].values colors = ['r', 'g'] labels = ['Class 1', 'Class 2'] for i, color, label in zip(np.unique(y), colors, labels): plt.scatter(X_pca[y == i, 0], X_pca[y == i, 1], color=color, label=label) plt.xlabel('Principal Component 1') plt.ylabel('Principal Component 2') plt.legend() plt.show() 7>

Dies ist ein einfaches Beispiel für die Durchführung einer PCA mit Python. Die Ausgabe dieses Codes ist ein Streudiagramm der ersten beiden Hauptkomponenten und ihres erklärten Varianzverhältnisses. Durch Auswahl der geeigneten Anzahl von Hauptkomponenten können wir die Dimensionalität des Datensatzes reduzieren und unser Verständnis der Daten verbessern.