Set de date MNIST în Python – Importare și trasare de bază
Introducere
În lumea învățării automate, recunoașterea caracterelor scrise de mână este o sarcină fundamentală și o problemă clasică. Setul de date MNIST (Modified National Institute of Standards and Technology) a devenit un reper în domeniu, oferind o colecție vastă și bine definită de imagini cu cifre scrise de mână. Acest set de date a fost utilizat pe scară largă pentru a evalua și a compara performanța algoritmilor de învățare automată, oferind un punct de referință standard pentru cercetarea și dezvoltarea în domeniu.
În acest tutorial, vom explora modul de a importa și a vizualiza setul de date MNIST în Python, folosind biblioteca Keras. Vom explica pașii necesari pentru a descărca setul de date, a-l împărți în seturi de antrenare și testare, apoi vom vizualiza câteva exemple de imagini din set.
Importul bibliotecilor necesare
Înainte de a începe, trebuie să importăm bibliotecile necesare pentru a lucra cu setul de date MNIST. În Python, vom utiliza biblioteca Keras, care oferă o interfață simplă și eficientă pentru a lucra cu seturi de date de imagini.
python
import tensorflow as tf
from tensorflow import keras
import matplotlib.pyplot as plt
Descărcarea setului de date MNIST
Keras oferă o funcție convenabilă pentru a descărca setul de date MNIST direct din cadrul bibliotecii. Această funcție preia automat datele și le pregătește pentru utilizare.
python
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
Această linie de cod descarcă setul de date MNIST și îl împarte în seturi de antrenare și testare. x_train
și x_test
conțin imaginile, în timp ce y_train
și y_test
conțin etichetele corespunzătoare (cifrele scrise de mână).
Explorarea setului de date
După ce am importat setul de date, să explorăm structura acestuia și să vedem ce conține.
python
print('Forma setului de antrenare:', x_train.shape)
print('Forma setului de testare:', x_test.shape)
Aceste linii de cod vor afișa forma seturilor de antrenare și testare. Veți observa că setul de antrenare conține 60.000 de imagini, fiecare având dimensiunea de 28×28 pixeli, în timp ce setul de testare conține 10.000 de imagini.
Vizualizarea unor exemple de imagini
Pentru a vizualiza câteva exemple de imagini din setul de date MNIST, vom utiliza biblioteca matplotlib.
python
plt.figure(figsize=(10,10))
for i in range(25):
plt.subplot(5,5,i+1)
plt.xticks([])
plt.yticks([])
plt.grid(False)
plt.imshow(x_train[i], cmap=plt.cm.binary)
plt.xlabel(y_train[i])
plt.show()
Acest cod va afișa 25 de imagini din setul de antrenare, împreună cu etichetele corespunzătoare. Puteți vedea că imaginile sunt în alb-negru și prezintă cifre scrise de mână.
Preprocesarea datelor
Înainte de a utiliza setul de date MNIST pentru antrenarea unui model de învățare automată, este necesar să preprocesăm datele. Aceasta include normalizarea pixelilor și conversia etichetelor într-un format potrivit.
python
x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255
Această linie de cod normalizează valorile pixelilor din intervalul 0-255 la intervalul 0-1. Acest lucru îmbunătățește performanța modelelor de învățare automată.
Conversia etichetelor
Etichetele originale din setul de date MNIST sunt reprezentate ca numere întregi (0-9). Pentru a antrena un model de clasificare, trebuie să convertim etichetele într-un format „one-hot”.
python
y_train = tf.keras.utils.to_categorical(y_train, num_classes=10)
y_test = tf.keras.utils.to_categorical(y_test, num_classes=10)
Această linie de cod convertește etichetele în format „one-hot”, unde fiecare etichetă este reprezentată printr-un vector cu 10 elemente, cu valoarea 1 la poziția corespunzătoare cifrei și 0 la celelalte.
Concluzie
Setul de date MNIST este o resursă esențială pentru cercetătorii și dezvoltatorii din domeniul învățării automate. Oferind o colecție vastă de imagini cu cifre scrise de mână, MNIST permite experimentarea și evaluarea algoritmilor de recunoaștere a caracterelor. În acest tutorial, am explorat pașii necesari pentru a importa, a preprocesat și a vizualizat setul de date MNIST în Python, folosind biblioteca Keras. Prin normalizarea pixelilor și conversia etichetelor în format „one-hot”, am pregătit datele pentru antrenarea unui model de învățare automată.
FAQs
1. Ce este setul de date MNIST?
Setul de date MNIST este o colecție de 70.000 de imagini cu cifre scrise de mână, împărțite în 60.000 de imagini de antrenare și 10.000 de imagini de testare.
2. Cum pot descărca setul de date MNIST?
Puteți descărca setul de date MNIST direct din cadrul bibliotecii Keras în Python, folosind funcția keras.datasets.mnist.load_data()
.
3. De ce este important să preprocesăm datele MNIST?
Preprocesarea datelor este esențială pentru a îmbunătăți performanța modelelor de învățare automată. Normalizarea pixelilor și conversia etichetelor în format „one-hot” pregătesc datele pentru antrenare.
4. Care este formatul imaginilor din setul de date MNIST?
Imaginile din setul de date MNIST sunt în format alb-negru, cu dimensiunea de 28×28 pixeli.
5. Cum pot vizualiza imaginile din setul de date MNIST?
Puteți utiliza biblioteca matplotlib pentru a vizualiza imaginile din setul de date MNIST.
6. Ce este formatul „one-hot”?
Formatul „one-hot” este o reprezentare a etichetelor, unde fiecare etichetă este reprezentată printr-un vector cu valori 0 sau 1.
7. Cum pot utiliza setul de date MNIST pentru antrenarea unui model de învățare automată?
Puteți utiliza setul de date MNIST pentru a antrena un model de clasificare, cum ar fi o rețea neuronală convoluțională, pentru a recunoaște cifrele scrise de mână.
8. Există alte seturi de date pentru recunoașterea caracterelor scrise de mână?
Da, există și alte seturi de date pentru recunoașterea caracterelor scrise de mână, cum ar fi EMNIST și SVHN.
9. Ce aplicații practice are recunoașterea caracterelor scrise de mână?
Recunoașterea caracterelor scrise de mână are aplicații practice în diverse domenii, cum ar fi scanarea documentelor, recunoașterea scrisului de mână pe dispozitive mobile și prelucrarea imaginilor.
10. Unde pot găsi mai multe informații despre setul de date MNIST?
Puteți găsi mai multe informații despre setul de date MNIST pe site-ul oficial https://en.wikipedia.org/wiki/MNIST_database.
Tags: set de date, MNIST, Python, Keras, învățare automată, recunoaștere de caractere, preprocesare, vizualizare, imagini, clasificare, format „one-hot”, aplicații practice