MNIST 데이터 세트를 Python에서 사용 – 기본 가져오기 및 플로팅

환영합니다. 이 튜토리얼에서는 MNIST 데이터셋에 대해 알아보겠습니다. 이 튜토리얼에서는 MNIST 데이터셋이 무엇인지, 어떻게 Python에서 가져오고 matplotlib을 사용하여 어떻게 플로팅하는지 배우게 됩니다.

MNIST 데이터셋이란?

MNIST 세트는 손으로 쓴 숫자의 큰 모음입니다. 이미지 처리 분야에서 매우 인기 있는 데이터셋으로 알려져 있습니다. 이는 기계 학습 알고리즘을 평가하기 위해 자주 사용됩니다.

MNIST Modified National Institute of Standards and Technology database의 약자입니다.

MNIST에는 70,000개의 28 x 28 손으로 쓴 숫자 이미지가 0에서 9까지 포함되어 있습니다.

데이터셋은 이미 교육 및 테스트 세트로 나뉘어 있습니다. 이에 대해 튜토리얼에서 자세히 살펴볼 것입니다.

MNIST에 대한 자세한 정보는 위키백과 페이지를 참조하세요. 이제 Keras에서 데이터셋을 가져오겠습니다.

파이썬 노트북에 데이터셋을 로드하는 것부터 시작해 봅시다.

Keras에서 MNIST 로드

먼저, MNIST 데이터셋을 Keras 모듈에서 가져와야 합니다.

다음 코드를 사용하여 가져올 수 있습니다:

from keras.datasets import mnist

이제 훈련 세트와 테스트 세트를 각각 별도의 변수에 로드합니다.

(train_X, train_y), (test_X, test_y) = mnist.load_data()

훈련 세트와 테스트 세트에 있는 이미지의 개수를 알아보겠습니다. 다시 말해, 이 데이터셋의 분할 비율을 찾아보겠습니다.

분할 비율에 대해 더 알아보려면 데이터를 훈련 세트와 테스트 세트로 분할하는 방법에 대한 이 튜토리얼을 참조하세요.

분할 비율을 찾기 위해 모든 벡터의 형태를 출력할 것입니다.

print('X_train: ' + str(train_X.shape))
print('Y_train: ' + str(train_y.shape))
print('X_test:  '  + str(test_X.shape))
print('Y_test:  '  + str(test_y.shape))

출력:

X_train: (60000, 28, 28)
Y_train: (60000,)
X_test:  (10000, 28, 28)
Y_test:  (10000,)

훈련 세트에는 60,000개의 이미지가 있고, 테스트 세트에는 10,000개의 이미지가 있습니다.

훈련 벡터의 차원은 (60000, 28, 28)입니다. 이는 28×28 크기의 60,000개의 흑백 이미지가 있기 때문입니다.28×28 크기의 이미지

MNIST 데이터셋 로드를 위한 완전한 코드

이 섹션의 완전한 코드는 다음과 같습니다:

from keras.datasets import mnist

#데이터셋을 로드하는 중
(train_X, train_y), (test_X, test_y) = mnist.load_data()

#벡터의 형태를 출력합니다.
print('X_train: ' + str(train_X.shape))
print('Y_train: ' + str(train_y.shape))
print('X_test:  '  + str(test_X.shape))
print('Y_test:  '  + str(test_y.shape))

이 데이터셋을 플롯하는 방법을 배워봅시다.

matplotlib를 사용하여 MNIST 데이터셋을 플롯하기

작업 중인 데이터셋을 플롯하는 것은 항상 좋은 생각입니다. 데이터의 종류에 대한 좋은 아이디어를 제공해줄 것입니다.

책임감 있는 데이터 과학자로서 데이터셋을 항상 플롯하는 것이 여러분의 의무여야 합니다.

데이터셋을 플롯하려면 다음 코드 조각을 사용하십시오 :

from matplotlib import pyplot
for i in range(9):  
pyplot.subplot(330 + 1 + i)
pyplot.imshow(train_X[i], cmap=pyplot.get_cmap('gray'))
pyplot.show()

출력 :

MNIST Data Plotted

이것이 우리 데이터의 모습입니다!

이와 같은 이미지가 70,000개가 있다고 상상해보세요. 그것이 데이터셋 안에 있는 것입니다. 이렇게 많은 양이기 때문에 데이터셋이 인기가 있는 이유 중 하나입니다.

필적 인식 문제는 얼마나 사소한지에 관계없이 더 이상 구식입니다. MNSIT 데이터셋의 더 도전적인 버전이 필요했습니다. 그것의 대체품이 될 수 있는.

MNIST 데이터셋의 더 도전적인 버전이 있나요?

네, 있습니다. Fashion MNIST 데이터셋.

패션 MNIST 데이터셋

패션 MNIST 데이터셋은 이전 MNIST 데이터셋의 보다 어려운 대체물입니다.

이 데이터셋은 신발, 티셔츠, 드레스 등 10 종류의 의류 항목의 작은 정사각형 28×28 픽셀 흑백 이미지 70,000개를 포함하고 있습니다.

패션 MNIST 데이터셋을 가져오고 플로팅하는 방법에 대해 알아보려면 이 튜토리얼을 읽어보세요.

결론

이 튜토리얼은 Python에서 MNIST 데이터셋을 가져오고 플로팅하는 것에 관한 것이었습니다. 또한 이 데이터셋의 보다 어려운 대체물인 패션 MNIST 세트에 대해 논의했습니다. 함께 학습하는 데 재미 있었기를 바랍니다!

Source:
https://www.digitalocean.com/community/tutorials/mnist-dataset-in-python