Heim  >  Artikel  >  Backend-Entwicklung  >  Techniken zur PCA-Hauptkomponentenanalyse (Dimensionalitätsreduktion) in Python

Techniken zur PCA-Hauptkomponentenanalyse (Dimensionalitätsreduktion) in Python

王林
王林Original
2023-06-09 21:57:062768Durchsuche

PCA-Hauptkomponentenanalyse (Dimensionalitätsreduktion)-Kenntnisse in Python

PCA (Hauptkomponentenanalyse) Die Hauptkomponentenanalyse ist eine sehr häufig verwendete Technik zur Reduzierung der Datendimensionalität. Die Daten können durch den PCA-Algorithmus verarbeitet werden, um die inhärenten Eigenschaften der Daten zu ermitteln und eine genauere und effektivere Datenerfassung für die anschließende Datenanalyse und Modellierung bereitzustellen.

Im Folgenden stellen wir einige Techniken zur Verwendung der PCA-Hauptkomponentenanalyse in Python vor.

  1. So normalisieren Sie Daten

Bevor Sie eine PCA-Dimensionalitätsreduktionsanalyse durchführen, müssen Sie zunächst die Daten normalisieren. Dies liegt daran, dass der PCA-Algorithmus die Hauptkomponenten durch Varianzmaximierung berechnet und nicht nur durch die Größe der Elementwerte, sodass er die Auswirkungen der entsprechenden Varianz jedes Elements vollständig berücksichtigt.

Es gibt viele Methoden zur Datennormalisierung in Python. Die einfachste Methode besteht darin, die Daten mithilfe der StandardScaler-Klasse der Sklearn-Bibliothek in eine Standardnormalverteilung mit einem Mittelwert von 0 und einer Varianz von 1 zu standardisieren. Der Code lautet wie folgt:

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
data_std = scaler.fit_transform(data)

Auf diese Weise können wir a erhalten Datensatz, der normalisiert wurde.

  1. Verwendung von PCA zur Dimensionsreduzierung

Der Code zur Verwendung von PCA zur Reduzierung der Dimensionalität von Daten ist sehr einfach. Das PCA-Modul wurde in die sklearn-Bibliothek integriert. Beim Aufruf der PCA-Klasse müssen wir lediglich die Anzahl der nach der Dimensionsreduzierung erhaltenen Hauptkomponenten festlegen. Der folgende Code reduziert beispielsweise die Daten auf zwei Hauptkomponenten:

from sklearn.decomposition import PCA

pca = PCA(n_components=2)
data_pca = pca.fit_transform(data_std)

Unter diesen gibt data_pca die neuen Daten nach der PCA-Dimensionalitätsreduzierungsverarbeitung zurück.

  1. So wählen Sie die Anzahl der Hauptkomponenten nach der Dimensionsreduzierung aus

Wenn wir PCA tatsächlich zur Datendimensionalitätsreduzierung verwenden, müssen wir die entsprechende Anzahl von Hauptkomponenten auswählen, um den besten Effekt der Dimensionsreduzierung zu erzielen. Normalerweise können wir dies beurteilen, indem wir das Diagramm der kumulativen Varianzbeitragsrate zeichnen.

Der Beitragssatz der kumulativen Varianz stellt den Prozentsatz der Summe der Varianzen der ersten n Hauptkomponenten an der Gesamtvarianz dar, zum Beispiel:

import numpy as np

pca = PCA()
pca.fit(data_std)

cum_var_exp = np.cumsum(pca.explained_variance_ratio_)

Durch Zeichnen des Diagramms des Beitragssatzes der kumulativen Varianz können wir beobachten, dass die kumulative Varianz zunimmt wenn die Anzahl der Hauptkomponenten schrittweise von 1 ansteigt. Der sich ändernde Trend des Beitragssatzes kann zur Schätzung der angemessenen Anzahl der Hauptkomponenten verwendet werden. Der Code lautet wie folgt:

import matplotlib.pyplot as plt

plt.bar(range(1, 6), pca.explained_variance_ratio_, alpha=0.5, align='center')
plt.step(range(1, 6), cum_var_exp, where='mid')
plt.ylabel('Explained variance ratio')
plt.xlabel('Principal components')
plt.show()

Die rote Linie in der Abbildung stellt die kumulative Varianzbeitragsrate dar, die x-Achse stellt die Anzahl der Hauptkomponenten dar und die y-Achse stellt den Anteil der erklärten Varianz dar. Es kann festgestellt werden, dass die Varianzbeitragsrate der ersten beiden Hauptkomponenten nahe bei 1 liegt, sodass die Auswahl von zwei Hauptkomponenten die Anforderungen der meisten Analyseaufgaben erfüllen kann.

  1. So visualisieren Sie die Daten nach der PCA-Dimensionalitätsreduzierung

Schließlich können wir die Scatter-Funktion der Matplotlib-Bibliothek verwenden, um die Daten nach der PCA-Dimensionalitätsreduzierung zu visualisieren. Der folgende Code reduziert beispielsweise die Daten von den ursprünglichen 4 Dimensionen durch PCA und zeigt sie dann visuell an:

import matplotlib.pyplot as plt

x = data_pca[:, 0]
y = data_pca[:, 1]
labels = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
colors = ['b', 'g', 'r', 'c', 'm', 'y', 'k', 'pink', 'brown', 'orange']

for i, label in enumerate(np.unique(labels)):
    plt.scatter(x[labels == label], y[labels == label], c=colors[i], label=label, alpha=0.7)

plt.legend()
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.show()

Die Farben und Beschriftungen im Bild entsprechen jeweils den numerischen Beschriftungen in den Originaldaten Nach der visuellen Dimensionalität Reduzierung, Daten, wir können die Struktur und Eigenschaften der Daten besser verstehen.

Kurz gesagt, der Einsatz der PCA-Hauptkomponentenanalysetechnologie kann uns dabei helfen, die Dimensionalität der Daten zu reduzieren und dadurch die Struktur und Eigenschaften der Daten besser zu verstehen. Mit den Python-Bibliotheken sklearn und matplotlib können wir den PCA-Algorithmus sehr bequem implementieren und visualisieren.

Das obige ist der detaillierte Inhalt vonTechniken zur PCA-Hauptkomponentenanalyse (Dimensionalitätsreduktion) in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn