2024-06-07 10:33 Temps de lecture : 9 min

Ensemble de données MNIST en Python - Importation et traçage de base

Introduction

Le jeu de données MNIST est une ressource largement reconnue, constituée d'images manuscrites, fréquemment employée pour la formation et l'évaluation de modèles d'apprentissage automatique et de vision par ordinateur. Il contient 70 000 images, chacune représentant un chiffre manuscrit allant de 0 à 9. Sa taille gérable et sa simplicité font de MNIST un excellent point de départ pour les novices souhaitant appréhender les concepts clés de l'apprentissage machine et acquérir une expérience pratique dans le traitement d'images.

Cet article examine le jeu de données MNIST à l'aide de Python, en s'appuyant sur la bibliothèque Keras, qui fournit une interface facile à utiliser pour charger, visualiser et manipuler les données MNIST. Nous allons explorer les étapes essentielles d'importation, de visualisation et d'exploration des images MNIST, en fournissant ainsi une base solide pour développer des modèles d'apprentissage machine performants à partir de ce jeu de données.

Acquisition du jeu de données MNIST

Importation des données d'entraînement et de test

La première étape consiste à intégrer le jeu de données MNIST dans notre environnement Python. Keras facilite cette opération grâce à la fonction keras.datasets.mnist.load_data(). Cette fonction retourne un tuple contenant deux tableaux Numpy : (x_train, y_train) et (x_test, y_test), qui représentent respectivement les données d'entraînement et de test.

python
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()

Compréhension de la structure des données

Le jeu de données MNIST est constitué d'images en niveaux de gris de 28x28 pixels, où chaque pixel est représenté par une valeur allant de 0 (noir) à 255 (blanc). Les étiquettes associées à chaque image sont des entiers allant de 0 à 9, indiquant le chiffre manuscrit représenté.

  • x_train et x_test: tableaux Numpy à 4 dimensions contenant les images MNIST. La première dimension représente le nombre d'échantillons (60 000 pour l'entraînement et 10 000 pour le test), tandis que les trois dimensions suivantes représentent la hauteur, la largeur et le nombre de canaux (1 pour les images en niveaux de gris).
  • y_train et y_test: tableaux Numpy à 1 dimension contenant les étiquettes cibles pour les images d'entraînement et de test, respectivement.

Visualisation des images MNIST

Affichage des images via Matplotlib

Pour la visualisation des images MNIST, nous allons utiliser la bibliothèque Matplotlib. Voici un exemple de code pour afficher les premières images du jeu d'entraînement :

python
import matplotlib.pyplot as plt

# Afficher les 10 premières images d'entraînement
plt.figure(figsize=(10,2))
for i in range(10):
plt.subplot(1, 10, i+1)
plt.imshow(x_train[i], cmap=plt.cm.binary)
plt.title("Chiffre: {}".format(y_train[i]))
plt.show()

Visualisation de multiples images avec Seaborn

Seaborn est une autre bibliothèque de visualisation de données qui s'avère utile pour l'affichage des images MNIST. Le code suivant emploie Seaborn pour montrer une grille d'images d'entraînement :

python
import seaborn as sns

# Afficher une grille de 25 images d'entraînement
plt.figure(figsize=(10,10))
sns.heatmap(x_train[:25].reshape(5,5), cbar=False, cmap=plt.cm.binary, annot=True, fmt='d')
plt.title("Grille d'images MNIST")
plt.show()

Exploration des données MNIST

Distribution des étiquettes

Il est instructif d'examiner la distribution des étiquettes dans le jeu de données MNIST pour comprendre la répartition des chiffres. Nous pouvons utiliser la fonction value_counts() de Pandas pour comptabiliser les occurrences de chaque étiquette :

python
import pandas as pd

# Créer un DataFrame à partir des étiquettes
labels = pd.DataFrame(y_train)

# Compter les occurrences de chaque étiquette
labels['count'] = labels[0].value_counts()

# Afficher la répartition des étiquettes
print(labels)

Statistiques descriptives

Nous pouvons aussi calculer des statistiques fondamentales sur les données d'image MNIST, telles que la valeur moyenne et l'écart type des pixels. Voici un code pour effectuer ces calculs :

python

# Calculer la valeur moyenne des pixels
mean_pixel_value = np.mean(x_train)

# Calculer l'écart type des pixels
std_pixel_value = np.std(x_train)

# Afficher les statistiques
print("Valeur moyenne des pixels:", mean_pixel_value)
print("Écart type des pixels:", std_pixel_value)

Conclusion

Le jeu de données MNIST représente une ressource précieuse pour l'apprentissage machine et la vision par ordinateur. Dans cet article, nous avons examiné les procédures clés d'importation, de visualisation et d'exploration des données MNIST en Python à l'aide de la bibliothèque Keras. Nous avons abordé le chargement des données d'entraînement et de test, la visualisation des images MNIST à l'aide de Matplotlib et Seaborn, et l'exploration de la distribution des étiquettes et des statistiques descriptives. La compréhension de ces fondements vous permettra d'exploiter pleinement le jeu de données MNIST pour concevoir des modèles d'apprentissage machine efficaces.

FAQ

1. Qu'est-ce que le jeu de données MNIST ?
Le jeu de données MNIST est un ensemble de 70 000 images manuscrites représentant les chiffres de 0 à 9.

2. Comment importer le jeu de données MNIST en Python ?
Vous pouvez employer la fonction keras.datasets.mnist.load_data().

3. Quelles sont les dimensions des images MNIST ?
Les images MNIST ont une taille de 28x28 pixels.

4. Combien d'échantillons contient le jeu de données MNIST ?
Le jeu de données MNIST comprend 60 000 échantillons d'entraînement et 10 000 échantillons de test.

5. Comment visualiser les images MNIST ?
Vous pouvez utiliser Matplotlib ou Seaborn pour afficher les images MNIST.

6. Quelle est la distribution des étiquettes dans MNIST ?
Les étiquettes MNIST sont distribuées de manière uniforme, avec 6 000 échantillons pour chaque chiffre de 0 à 9 dans les données d'entraînement.

7. Comment calculer la valeur moyenne des pixels dans MNIST ?
Vous pouvez recourir à la fonction np.mean() de Numpy.

8. Quel est l'écart type typique des pixels dans MNIST ?
L'écart type typique des pixels dans MNIST est d'environ 15.

9. Où puis-je trouver plus d'informations sur le jeu de données MNIST ?
Vous pouvez consulter le site Web MNIST pour obtenir des informations supplémentaires.

10. Existe-t-il d'autres jeux de données populaires pour la vision par ordinateur ?
Oui, d'autres jeux de données populaires comprennent CIFAR-10, SVHN et ImageNet.

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.