Compétences en analyse en composantes principales PCA (réduction de dimensionnalité) en Python
PCA (analyse en composantes principales) L'analyse en composantes principales est une technique de réduction de dimensionnalité des données très couramment utilisée. Les données peuvent être traitées via l'algorithme PCA pour découvrir les caractéristiques inhérentes des données et fournir une collecte de données plus précise et plus efficace pour l'analyse et la modélisation ultérieures des données.
Ci-dessous, nous présenterons quelques techniques d'utilisation de l'analyse en composantes principales PCA en Python.
Avant d'effectuer une analyse de réduction de dimensionnalité PCA, vous devez d'abord normaliser les données. En effet, l'algorithme PCA calcule les composantes principales via la maximisation de la variance, plutôt que simplement la taille des valeurs des éléments, de sorte qu'il prend pleinement en compte l'impact de la variance correspondante de chaque élément.
Il existe de nombreuses méthodes de normalisation des données en Python. La méthode la plus basique consiste à standardiser les données dans une distribution normale standard avec une moyenne de 0 et une variance de 1 via la classe StandardScaler de la bibliothèque sklearn. Le code est le suivant :
from sklearn.preprocessing import StandardScaler scaler = StandardScaler() data_std = scaler.fit_transform(data)
De cette façon, nous pouvons obtenir un. ensemble de données qui a été normalisé data_std.
Le code d'utilisation de PCA pour réduire la dimensionnalité des données est très simple. Le module PCA a été intégré dans la bibliothèque sklearn. Il suffit de définir le nombre de composants principaux conservés après réduction de dimensionnalité lors de l'appel de la classe PCA. Par exemple, le code suivant réduit les données à 2 composants principaux :
from sklearn.decomposition import PCA pca = PCA(n_components=2) data_pca = pca.fit_transform(data_std)
Parmi eux, data_pca renvoie les nouvelles données après le traitement de réduction de dimensionnalité PCA.
Lorsque nous utilisons réellement PCA pour la réduction de dimensionnalité des données, nous devons choisir le nombre approprié de composants principaux pour obtenir le meilleur effet de réduction de dimensionnalité. Habituellement, nous pouvons juger en traçant le graphique du taux de cotisation de la variance cumulative.
Le taux de cotisation de variance cumulée représente le pourcentage de la somme des variances des n premières composantes principales par rapport à la variance totale, par exemple :
import numpy as np pca = PCA() pca.fit(data_std) cum_var_exp = np.cumsum(pca.explained_variance_ratio_)
En traçant le graphique du taux de cotisation de variance cumulée, on peut observer que la variance cumulée augmente lorsque le nombre de composantes principales augmente progressivement à partir de 1. L'évolution du taux de cotisation peut être utilisée pour estimer le nombre approprié de composantes principales. Le code est le suivant :
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()
La ligne rouge sur la figure représente le taux de cotisation de variance cumulé, l'axe des x représente le nombre de composantes principales et l'axe des y représente la proportion de variance expliquée. On peut constater que le taux de contribution à la variance des deux premières composantes principales est proche de 1, donc la sélection de deux composantes principales peut répondre aux besoins de la plupart des tâches d'analyse.
Enfin, nous pouvons utiliser la fonction scatter de la bibliothèque matplotlib pour visualiser les données après réduction de dimensionnalité PCA. Par exemple, le code suivant réduit les données des 4 dimensions d'origine à 2 dimensions via PCA, puis les affiche visuellement :
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()
Les couleurs et les étiquettes de l'image correspondent respectivement aux étiquettes numériques des données d'origine. réduction, Données, nous pouvons mieux comprendre la structure et les caractéristiques des données.
En bref, l'utilisation de la technologie d'analyse en composantes principales PCA peut nous aider à réduire la dimensionnalité des données et ainsi à mieux comprendre la structure et les caractéristiques des données. Grâce aux bibliothèques sklearn et matplotlib de Python, nous pouvons implémenter et visualiser l'algorithme PCA de manière très pratique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!