Tracer l'ACP vs l'ADA

Machine LearningMachine LearningBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous comparerons les performances de deux algorithmes de réduction de dimensionnalité populaires, l'Analyse en Composantes Principales (PCA) et l'Analyse Discriminante Linéaire (LDA), sur l'ensemble de données Iris. L'ensemble de données Iris contient 3 types de fleurs Iris avec 4 attributs : longueur du sépale, largeur du sépale, longueur des pétales et largeur des pétales.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter Notebook pour pratiquer.

Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limites du carnet Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez des commentaires après la session, et nous résoudrons rapidement le problème pour vous.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/AdvancedDataAnalysisandDimensionalityReductionGroup(["Advanced Data Analysis and Dimensionality Reduction"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/discriminant_analysis("Discriminant Analysis") sklearn/AdvancedDataAnalysisandDimensionalityReductionGroup -.-> sklearn/decomposition("Matrix Decomposition") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/discriminant_analysis -.-> lab-49242{{"Tracer l'ACP vs l'ADA"}} sklearn/decomposition -.-> lab-49242{{"Tracer l'ACP vs l'ADA"}} ml/sklearn -.-> lab-49242{{"Tracer l'ACP vs l'ADA"}} end

Charger l'ensemble de données

Tout d'abord, nous devons charger l'ensemble de données Iris à l'aide de la fonction load_iris() intégrée dans scikit-learn.

import matplotlib.pyplot as plt
from sklearn import datasets

iris = datasets.load_iris()

X = iris.data
y = iris.target
target_names = iris.target_names

Effectuer l'ACP

Ensuite, nous effectuerons l'Analyse en Composantes Principales (ACP) sur l'ensemble de données pour identifier la combinaison d'attributs qui explique la plus grande partie de la variance des données. Nous tracerons les différents échantillons sur les deux premières composantes principales.

from sklearn.decomposition import PCA

pca = PCA(n_components=2)
X_r = pca.fit(X).transform(X)

## Taux de variance expliquée pour chaque composante
print("Explained variance ratio (first two components): %s" % str(pca.explained_variance_ratio_))

plt.figure()
colors = ["navy", "turquoise", "darkorange"]
lw = 2

for color, i, target_name in zip(colors, [0, 1, 2], target_names):
    plt.scatter(X_r[y == i, 0], X_r[y == i, 1], color=color, alpha=0.8, lw=lw, label=target_name)

plt.legend(loc="best", shadow=False, scatterpoints=1)
plt.title("PCA of Iris Dataset")
plt.show()

Effectuer l'ADA

Maintenant, nous effectuerons l'Analyse Discriminante Linéaire (ADA) sur l'ensemble de données pour identifier les attributs qui expliquent la plus grande partie de la variance entre les classes. Contrairement à l'ACP, l'ADA est une méthode supervisée qui utilise les étiquettes de classe connues.

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

lda = LinearDiscriminantAnalysis(n_components=2)
X_r2 = lda.fit(X, y).transform(X)

plt.figure()
for color, i, target_name in zip(colors, [0, 1, 2], target_names):
    plt.scatter(X_r2[y == i, 0], X_r2[y == i, 1], alpha=0.8, color=color, label=target_name)

plt.legend(loc="best", shadow=False, scatterpoints=1)
plt.title("LDA of Iris Dataset")
plt.show()

Comparer les résultats

Enfin, nous comparerons les résultats de l'ACP et de l'ADA. Nous pouvons constater que l'ADA se comporte mieux que l'ACP pour séparer les trois classes dans l'ensemble de données Iris.

Sommaire

Dans ce laboratoire, nous avons appris à effectuer l'Analyse en Composantes Principales (ACP) et l'Analyse Discriminante Linéaire (ADA) sur l'ensemble de données Iris à l'aide de scikit-learn. Nous avons également comparé les performances de ces deux algorithmes de réduction de dimension et constaté que l'ADA se comporte mieux que l'ACP pour séparer les différentes classes dans l'ensemble de données.