Zestaw danych MNIST w Pythonie – Podstawowe importowanie i wykresy

Wprowadzenie

Zbiór danych MNIST, czyli zmodyfikowany zbiór Narodowego Instytutu Standardów i Technologii, to popularny zestaw obrazów ręcznie pisanych cyfr. Jest on często wykorzystywany w procesie uczenia i oceny efektywności algorytmów z dziedziny uczenia maszynowego oraz analizy obrazów. Zbiór ten zawiera 70 000 obrazów cyfr od 0 do 9, z czego 60 000 obrazów to dane treningowe, a 10 000 to dane testowe.

Zbiór danych MNIST to wartościowy zasób dla badaczy i praktyków uczenia maszynowego z kilku istotnych powodów:

  • Prostota: Obrazy mają niewielkie rozmiary (28×28 pikseli) i przedstawiają pojedyncze cyfry, co ułatwia zrozumienie ich struktury osobom początkującym w dziedzinie uczenia maszynowego.
  • Zróżnicowanie: Obrazy pochodzą od różnych autorów, co gwarantuje różnorodność stylów pisma i odmienności w prezentacji cyfr.
  • Dostępność: Zbiór danych MNIST jest łatwo dostępny do pobrania i jest natywnie obsługiwany przez wiele bibliotek uczenia maszynowego.
  • Punkt odniesienia: Zbiór danych MNIST jest powszechnie stosowany jako benchmark, co umożliwia porównywanie efektywności różnych algorytmów.

W tym opracowaniu skupimy się na przedstawieniu podstawowych kroków związanych z importowaniem i graficzną prezentacją danych z zbioru MNIST w języku Python, korzystając z biblioteki Keras.

Importowanie pakietów

Pierwszym krokiem jest zaimportowanie wszystkich niezbędnych bibliotek. Aby zaimportować Keras i inne wymagane moduły, użyjemy następującego fragmentu kodu:


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

Pobieranie danych

Następnym krokiem jest załadowanie zbioru danych MNIST. Keras udostępnia wygodną funkcję mnist.load_data(), która zwraca dane w postaci dwóch krotek:


(x_train, y_train), (x_test, y_test) = mnist.load_data()
  • x_train i y_train to odpowiednio dane treningowe oraz przypisane im etykiety.
  • x_test i y_test reprezentują dane testowe wraz z ich etykietami.

Analiza danych

Po załadowaniu danych możemy przyjrzeć się ich strukturze i zawartości.


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

Oczekiwany rezultat działania powyższego kodu powinien być następujący:


Struktura danych treningowych: (60000, 28, 28)
Struktura etykiet treningowych: (60000,)
Struktura danych testowych: (10000, 28, 28)
Struktura etykiet testowych: (10000,)

Jak widać, zarówno dane treningowe jak i testowe są reprezentowane przez trójwymiarowe tablice. Pierwszy wymiar to ilość próbek, a drugi i trzeci wymiar to wymiary pojedynczego obrazu (28×28 pikseli). Etykiety są tablicami jednowymiarowymi, gdzie każda wartość odpowiada etykiecie odpowiedniej klasy.

Wizualizacja obrazów

Aby lepiej zrozumieć dane, możemy zwizualizować obrazy z zestawu MNIST. Poniższy fragment kodu prezentuje losowo wybrane obrazy z danych treningowych:


Wybór losowych indeksów

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

Prezentacja obrazów

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()

W rezultacie zostanie wygenerowany wykres z pięcioma mniejszymi wykresami, przedstawiającymi obrazy i przypisane im etykiety.

Podsumowanie

Zbiór danych MNIST stanowi cenny zasób dla społeczności uczenia maszynowego i analizy obrazów. W tym artykule przedstawiliśmy proces importu i wizualizacji danych MNIST w Pythonie przy użyciu biblioteki Keras. Te podstawowe kroki są kluczowe w przygotowaniu danych i ich analizie przed procesem treningu i oceny algorytmów uczenia maszynowego.

Najczęściej Zadawane Pytania

1. Co wyróżnia zbiór danych MNIST?

Zbiór danych MNIST jest wyjątkowy, ponieważ zawiera ręcznie pisane cyfry pochodzące od wielu osób. To zróżnicowanie w danych ułatwia proces uczenia algorytmów maszynowych.

2. Jakie są potencjalne zastosowania zbioru danych MNIST?

Zbiór danych MNIST jest często używany do szkolenia i testowania algorytmów do klasyfikacji obrazów, rozpoznawania cyfr oraz w projektach związanych z wnioskowaniem.

3. Czy zbiór danych MNIST jest nadal istotny?

Tak, zbiór MNIST wciąż ma znaczenie, oferując szybki i łatwy sposób na wprowadzenie do nauki o maszynach i przetwarzania obrazów. Chociaż nie jest już wykorzystywany tak szeroko jak w przeszłości, to nadal odgrywa kluczową rolę w badaniach nad uczeniem maszynowym.

4. Jakie są zalety korzystania ze zbioru MNIST?

Zbiór danych MNIST charakteryzuje się łatwością pobierania, prostą strukturą i szerokim wsparciem przez biblioteki uczenia maszynowego. Dodatkowo, stanowi punkt odniesienia w porównywaniu efektywności różnych algorytmów.

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

Tak, istnieją inne zestawy danych z obrazami ręcznie pisanych znaków, takie jak EMNIST (rozszerzona wersja MNIST) oraz SVHN (Street View House Numbers). Te zbiory danych oferują większą różnorodność i stopień trudności niż MNIST.

6. Gdzie można znaleźć więcej informacji o zbiorze danych MNIST?

Szczegółowe informacje na temat zbioru danych MNIST znajdują się na oficjalnej stronie.

7. Czy istnieje możliwość wygenerowania własnych danych podobnych do MNIST?

Oczywiście, istnieją narzędzia takie jak tf.data.Dataset, które umożliwiają tworzenie syntetycznych danych zbliżonych do MNIST. Istnieje również możliwość modyfikacji zbioru MNIST poprzez dodawanie szumów lub zakłóceń.

8. Czy zbiór danych MNIST jest dostępny bezpłatnie?

Tak, zbiór danych MNIST jest darmowy i ogólnodostępny. Można go pobrać ze strony Kaggle.


newsblog.pl