Réduction de la dimensionalité avec l'Analyse des Composantes du Voisinage

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

Ce laboratoire montre comment appliquer l'Analyse des Composantes du Voisinage (NCA) pour la réduction de dimensionnalité à l'aide de la bibliothèque scikit-learn. Ce laboratoire compare l'NCA avec d'autres méthodes (linéaires) de réduction de dimensionnalité appliquées sur l'ensemble de données Digits. L'ensemble de données Digits contient des images de chiffres de 0 à 9 avec environ 180 échantillons de chaque classe.

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 Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de 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.

Importation des bibliothèques

Importer les bibliothèques nécessaires :

  • numpy
  • matplotlib.pyplot
  • datasets
  • train_test_split
  • PCA
  • LinearDiscriminantAnalysis
  • KNeighborsClassifier
  • NeighborhoodComponentsAnalysis
  • make_pipeline
  • StandardScaler

Charger l'ensemble de données Digits

Chargez l'ensemble de données Digits à l'aide de la fonction load_digits() de scikit-learn.

Diviser l'ensemble de données

Divisez l'ensemble de données en ensembles de données d'entraînement et de test à l'aide de la fonction train_test_split() de scikit-learn.

Définir les variables

Définissez les variables nécessaires pour l'analyse :

  • dim = nombre de caractéristiques dans l'ensemble de données
  • n_classes = nombre de classes dans l'ensemble de données
  • n_neighbors = nombre de voisins pour le classifieur KNN
  • random_state = état aléatoire pour la reproductibilité

Réduction de la dimensionalité avec l'ACP

Réduisez la dimension de l'ensemble de données à 2 à l'aide de l'Analyse en Composantes Principales (PCA) en créant un pipeline avec StandardScaler() et PCA(n_components=2, random_state=random_state).

Réduction de la dimensionalité avec l'Analyse Linéaire Discriminante

Réduisez la dimension de l'ensemble de données à 2 à l'aide de l'Analyse Linéaire Discriminante (LDA) en créant un pipeline avec StandardScaler() et LinearDiscriminantAnalysis(n_components=2).

Réduction de la dimensionalité avec l'Analyse des Composantes du Voisinage

Réduisez la dimension de l'ensemble de données à 2 à l'aide de l'Analyse des Composantes du Voisinage (NCA) en créant un pipeline avec StandardScaler() et NeighborhoodComponentsAnalysis(n_components=2, random_state=random_state).

Utiliser le classifieur KNN pour évaluer les méthodes

Créez un KNeighborsClassifier avec n_neighbors comme paramètre.

Créer une liste de méthodes à comparer

Créez une liste de méthodes à comparer avec le classifieur KNN à l'aide des méthodes définies dans les étapes 5 - 7.

Ajuster les modèles et évaluer la précision sur l'ensemble de test

Ajustez chaque modèle et évaluez la précision sur l'ensemble de test en transformant l'ensemble d'entraînement et l'ensemble de test avec model.transform() et en ajustant le classifieur KNN sur l'ensemble d'entraînement transformé. Calculez la précision du plus proche voisin sur l'ensemble de test transformé à l'aide de knn.score().

Tracer les points projetés et afficher le score d'évaluation

Tracez les points projetés et affichez le score d'évaluation pour chaque méthode à l'aide de plt.scatter() et plt.title().

Afficher les graphiques

Affichez les graphiques à l'aide de plt.show().

Sommaire

Dans ce laboratoire, nous avons montré comment effectuer une réduction de la dimensionalité avec l'Analyse des Composantes du Voisinage (NCA en anglais) et l'avons comparée à d'autres méthodes (linéaires) de réduction de la dimensionalité appliquées sur l'ensemble de données Digits. Les résultats ont montré que l'NCA impose une classification des données qui est visuellement significative malgré la forte réduction de la dimension.