Maison >développement back-end >Tutoriel Python >Exemple d'analyse en composantes principales en Python

Exemple d'analyse en composantes principales en Python

王林
王林original
2023-06-10 08:19:53981parcourir

Exemple d'analyse en composantes principales en Python

L'analyse en composantes principales (ACP) est une méthode couramment utilisée pour la réduction de la dimensionnalité des données, qui peut réduire les données de grande dimension à de faibles dimensions, en conservant autant de données. informations de variation que possible. Python fournit de nombreuses bibliothèques et outils pour implémenter PCA. Cet article utilise un exemple pour présenter comment utiliser la bibliothèque sklearn en Python pour implémenter PCA.

Tout d'abord, nous devons préparer un ensemble de données. Cet article utilisera l'ensemble de données Iris, qui contient 150 exemples de données. Chaque échantillon a 4 valeurs de caractéristiques (la longueur et la largeur du calice, la longueur et la largeur des pétales) et une étiquette (le type de fleur d'iris). Notre objectif est de réduire la dimensionnalité de ces quatre caractéristiques et de trouver les composantes principales les plus importantes.

Tout d'abord, nous devons importer les bibliothèques et les ensembles de données nécessaires.

from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

iris = load_iris()
X = iris.data
y = iris.target

Nous pouvons maintenant créer un objet PCA et l'appliquer.

pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

L'objet PCA définit ici n_components=2, ce qui signifie que nous voulons uniquement afficher nos données traitées sur un plan bidimensionnel. Nous appliquons fit_transform aux données d'origine X et obtenons l'ensemble de données traitées X_pca.

Maintenant, nous pouvons tracer les résultats.

plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y)
plt.xlabel('Component 1')
plt.ylabel('Component 2')
plt.show()

Dans cette figure, nous pouvons voir la distribution de l'ensemble de données Iris dans l'espace bidimensionnel après réduction de dimensionnalité. Chaque point représente un échantillon d'une fleur d'iris et la couleur représente le type de fleur d'iris.

Voyons maintenant quels devraient être les principaux ingrédients.

print(pca.components_)

Cela produira deux vecteurs appelés "Composant 1" et "Composant 2".

[[ 0.36158968 -0.08226889 0.85657211 0.35884393]
[-0.65653988 -0.72971237 0.1757674 0.07470647]]

Chaque élément représente le poids d'une caractéristique dans les données d'origine. En d’autres termes, nous pouvons considérer les composantes principales comme des vecteurs utilisés pour combiner linéairement les caractéristiques d’origine. Chaque vecteur du résultat est un vecteur unitaire.

Nous pouvons également examiner la quantité de variance dans les données expliquée par chaque composant.

print(pca.explained_variance_ratio_)

Cette sortie affichera la proportion de la variance dans les données expliquée par chaque composant.

[0.92461621 0.05301557]

On constate que ces deux composantes expliquent au total 94% de la variance des données. Cela signifie que nous pouvons capturer les caractéristiques des données avec une grande précision.

Une chose à noter est que PCA supprimera toutes les fonctionnalités des données d'origine. Par conséquent, si nous devons conserver certaines fonctionnalités, nous devons les supprimer manuellement avant d'appliquer PCA.

Ceci est un exemple de la façon d'implémenter PCA à l'aide de la bibliothèque sklearn en Python. La PCA peut être appliquée à tous les types de données et nous aide à découvrir les composants les plus importants des données de grande dimension. Si vous comprenez le code de cet article, vous pourrez également appliquer la PCA à vos propres ensembles de données.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn