MNIST-datasæt i Python – Grundlæggende import og plotning

MNIST-datasættet i Python – Grundlæggende import og plotning

Introduktion

MNIST-datasættet er et håndskrevet cifredatasæt, der indeholder 70.000 billeder af tal mellem 0 og 9. Hvert billede er 28×28 pixels stort, hvilket resulterer i et input-array på 784 elementer. MNIST-datasættet er et grundlæggende værktøj inden for machine learning og bruges ofte til at teste og udvikle billedegenkendelsesalgoritmer. I denne artikel vil vi se på, hvordan man importerer og plotter MNIST-datasættet ved hjælp af Python. Vi vil også udforske nogle grundlæggende dataundersøgelser og visualiseringer.

Import af MNIST-datasættet

Det første skridt er at importere MNIST-datasættet ved hjælp af Keras. Keras er et high-level neural network API, der forenkler processen med at bygge og træne maskinlæringsmodeller.

python
import tensorflow as tf
from keras.datasets import mnist

Indlæs MNIST datasættet

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

Variablen x_train og x_test indeholder billederne for hhv. trænings- og testsættene, mens y_train og y_test indeholder etiketterne for de tilsvarende billeder.

Form af datasættet

Lad os se på formen af datasættene:

python
print("Train data shape:", x_train.shape)
print("Train label shape:", y_train.shape)
print("Test data shape:", x_test.shape)
print("Test label shape:", y_test.shape)

Dette vil printe følgende output:


Train data shape: (60000, 28, 28)
Train label shape: (60000,)
Test data shape: (10000, 28, 28)
Test label shape: (10000,)

Som vi kan se, har træningssættet 60.000 billeder, mens testsættet har 10.000 billeder. Hvert billede er 28×28 pixels stort, hvilket resulterer i en array-form på (28×28=784).

Plotning af et billede

Lad os nu plotte et billede fra datasættet:

python
import matplotlib.pyplot as plt

Vælg et tilfældigt indeks

index = np.random.randint(0, len(x_train))

Hent billede og etiket

image = x_train[index]
label = y_train[index]

Plot billede med pyplot

plt.imshow(image, cmap='gray')
plt.title("Nummer: {}".format(label))
plt.show()

Dette vil plotte et tilfældigt billede fra træningssættet sammen med dets etiket.

Dataudforskning

Lad os udføre nogle grundlæggende dataudforskning på MNIST-datasættet:

Fordeling af etiketter

python
import collections

counter = collections.Counter(y_train)
print("Fordeling af etiketter:")
for label, count in counter.items():
print("Label {}: {}".format(label, count))

Dette vil printe fordelingen af etiketter i træningssættet. Vi kan se, at hvert tal har ca. 6000 eksempler.

Visualisering af billeder

python
import matplotlib.pyplot as plt

Plot flere billeder

fig, axs = plt.subplots(5, 5, figsize=(7, 7))
axs = axs.ravel()

for i in range(25):
index = np.random.randint(0, len(x_train))
image = x_train[index]
label = y_train[index]
axs[i].imshow(image, cmap='gray')
axs[i].set_title("Nummer: {}".format(label))
axs[i].axis('off')

plt.tight_layout()
plt.show()

Dette vil plotte et gitter af 25 tilfældige billeder fra træningssættet sammen med deres etiketter.

Konklusion

I denne artikel har vi givet en grundlæggende introduktion til MNIST-datasættet i Python. Vi har vist, hvordan man importerer datasættet, plotter et enkelt billede og udfører nogle grundlæggende dataundersøgelser. MNIST-datasættet er et værdifuldt værktøj til at teste og udvikle billedegenkendelsesalgoritmer. Vi opfordrer dig til at udforske datasættet yderligere og bruge det til dine egne maskinlæringsopgaver.

Ofte stillede spørgsmål (FAQ)

1. Hvad er MNIST-datasættet?

MNIST er et håndskrevet cifredatasæt, der indeholder 70.000 billeder af tal mellem 0 og 9.

2. Hvorfor er MNIST-datasættet så populært?

MNIST-datasættet er et grundlæggende værktøj inden for machine learning og bruges ofte til at teste og udvikle billedegenkendelsesalgoritmer.

3. Hvordan importerer man MNIST-datasættet i Python?

Du kan importere MNIST-datasættet ved hjælp af Keras ved hjælp af følgende kommando:

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

4. Hvordan plotter man et billede fra MNIST-datasættet?

Du kan plotte et billede fra MNIST-datasættet ved hjælp af følgende kommandoer:

python
import matplotlib.pyplot as plt

Vælg et tilfældigt indeks

index = np.random.randint(0, len(x_train))

Hent billede og etiket

image = x_train[index]
label = y_train[index]

Plot billede med pyplot

plt.imshow(image, cmap='gray')
plt.title("Nummer: {}".format(label))
plt.show()

5. Hvordan udfører man dataudforskning på MNIST-datasættet?

Du kan udføre dataudforskning på MNIST-datasættet ved hjælp af følgende kommandoer:

python
import collections

counter = collections.Counter(y_train)
print("Fordeling af etiketter:")
for label, count in counter.items():
print("Label {}: {}".format(label, count))

6. Hvordan visualiserer man billeder fra MNIST-datasættet?

Du kan visualisere billeder fra MNIST-datasættet ved hjælp af følgende kommandoer:

python
import matplotlib.pyplot as plt

Plot flere billeder

fig, axs = plt.subplots(5, 5, figsize=(7, 7))
axs = axs.ravel()

for i in range(25):
index = np.random.randint(0, len(x_train))
image = x_train[index]
label = y_train[index]
axs[i].imshow(image, cmap='gray')
axs[i].set_title("Nummer: {}".format(label))
axs[i].axis('off')

plt.tight_layout()
plt.show()

7. Hvilke andre cifredatasæt er tilgængelige?

Der er mange andre cifredatasæt tilgængelige, herunder SVHN, CIFAR-10 og CIFAR-100.

8. Hvor kan jeg finde flere oplysninger om MNIST-datasættet?

Du kan finde flere oplysninger om MNIST-datasættet på den officielle TensorFlow-side.