Zestaw danych MNIST w Pythonie – Podstawowe importowanie i wykresy

Zestaw danych MNIST w Pythonie – Podstawowe importowanie i wykresy

Wprowadzenie

Zestaw danych MNIST (Modified National Institute of Standards and Technology) to popularny zbiór obrazów ręcznie pisanych cyfr, który jest często używany do szkolenia i oceny algorytmów uczenia maszynowego oraz przetwarzania obrazu. Zestaw danych składa się z 70 000 obrazów cyfr z zakresu od 0 do 9, przy czym 60 000 obrazów to zbiór treningowy, a 10 000 to zbiór testowy.

Zestaw danych MNIST jest cennym zasobem dla naukowców i praktyków z zakresu uczenia maszynowego z kilku powodów:

* Prostota: Obrazy są małe (28×28 pikseli) i przedstawiają tylko pojedyncze cyfry, co czyni je łatwą do zrozumienia dla każdego, kto uczy się uczenia maszynowego.
* Różnorodność: Obrazy są pozyskiwane od różnych pisarzy, co zapewnia różnorodność stylów pisma i wariacji.
* Dostępność: Zestaw danych MNIST jest łatwo dostępny do pobrania i jest obsługiwany przez wiele bibliotek uczenia maszynowego.
* Odniesienie: Zestaw danych MNIST jest szeroko stosowany jako zestaw testowy, co pozwala na porównanie wydajności różnych algorytmów.

W tym artykule omówimy podstawowe kroki importowania i wizualizacji zestawu danych MNIST w języku Python za pomocą biblioteki Keras.

Importowanie bibliotek

Pierwszym krokiem jest zaimportowanie niezbędnych bibliotek. Aby zaimportować Keras i inne wymagane pakiety, użyj następującego kodu:


import numpy as np
import matplotlib.pyplot as plt
from keras.datasets import mnist

Ładowanie zestawu danych

Następnie załadujemy zestaw danych MNIST. Keras zapewnia wygodną funkcję mnist.load_data(), która ładuje zestaw danych jako parę krotek:


(x_train, y_train), (x_test, y_test) = mnist.load_data()

* x_train i y_train to odpowiednio dane treningowe i etykiety.
* x_test i y_test to dane testowe i etykiety.

Eksploracja danych

Po załadowaniu danych możemy zbadać ich kształt i zawartość.


print("Kształt danych treningowych:", x_train.shape)
print("Kształt etykiet treningowych:", y_train.shape)
print("Kształt danych testowych:", x_test.shape)
print("Kształt etykiet testowych:", y_test.shape)

Wynik powinien wyglądać następująco:


Kształt danych treningowych: (60000, 28, 28)
Kształt etykiet treningowych: (60000,)
Kształt danych testowych: (10000, 28, 28)
Kształt etykiet testowych: (10000,)

Jak widać, dane treningowe i testowe są tablicami trójwymiarowymi, gdzie pierwszy wymiar reprezentuje liczbę próbek, drugi i trzeci wymiar reprezentują wymiary obrazu (28×28). Etykiety są tablicami jednowymiarowymi, gdzie każda wartość reprezentuje etykietę klasy.

Wizualizacja obrazów

Możemy wizualizować obrazy z zestawu danych MNIST, aby uzyskać lepsze zrozumienie danych. Poniższy kod pokaże losowe obrazy z danych treningowych:

Wybierz kilka losowych indeksów

indeksy = np.random.randint(0, x_train.shape[0], 5)

Wyświetl obrazy

plt.figure(figsize=(10, 5))
for i, idx in enumerate(indeksy):
plt.subplot(1, 5, i+1)
plt.imshow(x_train[idx], cmap='gray')
plt.title(f'Etykieta: {y_train[idx]}')
plt.show()

Wynikiem będzie wykres z pięcioma podwykresami, pokazującymi obrazy i odpowiadające im etykiety.

Podsumowanie

Zestaw danych MNIST jest cennym zasobem dla nauki maszynowej i przetwarzania obrazu. W tym artykule pokazaliśmy, jak zaimportować i zwizualizować zestaw danych MNIST w Pythonie za pomocą biblioteki Keras. Te podstawowe kroki są niezbędne do przygotowania danych i eksploracji ich przed przystąpieniem do szkolenia i oceny algorytmów uczenia maszynowego.

Często zadawane pytania

1. Co jest unikalnego w zestawie danych MNIST?

Zestaw danych MNIST jest unikalny, ponieważ składa się z ręcznie pisanych cyfr, które są pozyskiwane od różnych pisarzy. Zapewnia to różnorodność w danych, co ułatwia naukę algorytmom uczenia maszynowego.

2. Jakie są potencjalne zastosowania zestawu danych MNIST?

Zestaw danych MNIST jest powszechnie stosowany do szkolenia i oceny algorytmów klasyfikacji obrazu, rozpoznawania cyfr i wnioskowania.

3. Czy zestaw danych MNIST jest nadal istotny?

Tak, zestaw danych MNIST jest nadal istotny, ponieważ zapewnia szybki i łatwy sposób na zapoznanie się z uczniem maszynowym i przetwarzaniem obrazu. Chociaż nie jest już tak szeroko stosowany jak kiedyś, nadal stanowi ważną część badań w zakresie uczenia maszynowego.

4. Jakie są zalety korzystania z zestawu danych MNIST?

Zestaw danych MNIST jest łatwy do pobrania, prosty do zrozumienia i szeroko obsługiwany przez biblioteki uczenia maszynowego. Zapewnia również odniesienie do porównywania wydajności różnych algorytmów.

5. Czy istnieją inne zestawy danych podobne do MNIST?

Tak, istnieją inne zestawy danych obrazów ręcznie pisanych, takie jak EMNIST (rozszerzony MNIST) i SVHN (Street View House Numbers). Te zestawy danych zapewniają większą zmienność i złożoność niż MNIST.

6. Gdzie mogę znaleźć więcej informacji o zestawie danych MNIST?

Więcej informacji o zestawie danych MNIST można znaleźć na oficjalnej stronie.

7. Czy istnieje sposób na generowanie własnych danych podobnych do MNIST?

Tak, istnieją narzędzia, takie jak tf.data.Dataset, które umożliwiają generowanie syntetycznych danych podobnych do MNIST. Możesz również dostosować dane MNIST, dodając szum lub zakłócenia.

8. Czy zestaw danych MNIST jest darmowy?

Tak, zestaw danych MNIST jest darmowy i dostępny dla wszystkich. Można go pobrać ze strony Kaggle.