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éesn_classes= nombre de classes dans l'ensemble de donnéesn_neighbors= nombre de voisins pour le classifieur KNNrandom_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.