웹사이트 검색

Python의 MNIST 데이터세트 - 기본 가져오기 및 플로팅


MNIST 데이터세트에 대한 이 튜토리얼에 오신 것을 환영합니다. 이 튜토리얼에서는 MNIST 데이터 세트가 무엇인지, Python에서 가져오는 방법, matplotlib를 사용하여 플롯하는 방법을 배웁니다.

MNIST 데이터 세트는 무엇입니까?

MNIST 집합은 손으로 쓴 숫자의 대규모 모음입니다. 이미지 처리 분야에서 매우 인기 있는 데이터 세트입니다. 기계 학습 알고리즘을 벤치마킹하는 데 자주 사용됩니다.

MNIST는 Modified National Institute of Standards and Technology 데이터베이스의 약자입니다.

MNIST는 0에서 9까지 손으로 쓴 숫자의 70,000, 28 x 28 이미지 모음을 포함합니다.

데이터 세트는 이미 훈련 세트와 테스트 세트로 나뉩니다. 이 튜토리얼의 뒷부분에서 볼 것입니다.

MNIST에 대한 자세한 내용은 Wikipedia 페이지를 참조하세요. Keras에서 데이터 세트를 가져올 것입니다.

Python 노트북에 데이터 세트를 로드하는 것부터 시작하겠습니다.

케라스에서 MNIST 불러오기

먼저 Keras 모듈에서 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))

산출:

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

학습 세트에 60k 이미지가 있고 테스트 세트에 10k 이미지가 있음을 알 수 있습니다.

트레이닝 벡터의 차원은 (60000, 28, 28)입니다. 이는 차원이 28X28인 그레이스케일 이미지가 60,000개 있기 때문입니다.

MNIST 데이터 세트를 로드하기 위한 전체 코드

이 섹션의 전체 코드는 다음과 같습니다.

from keras.datasets import mnist

#loading the dataset
(train_X, train_y), (test_X, test_y) = mnist.load_data()

#printing the shapes of the vectors 
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 데이터 세트 플로팅

작업 중인 데이터 세트를 플롯하는 것은 항상 좋은 생각입니다. 그것은 당신이 다루고 있는 데이터의 종류에 대한 좋은 아이디어를 줄 것입니다.

책임 있는 데이터 과학자로서 항상 데이터 세트를 0단계로 구성하는 것이 귀하의 의무입니다.

데이터 세트를 플로팅하려면 다음 코드를 사용하십시오.

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

출력 :

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

이와 같은 70,000개의 이미지를 상상해 보십시오. 그것이 데이터 세트 안에 있는 것입니다. 너무 방대하다는 것은 데이터 세트가 인기 있는 이유 중 하나입니다.

아무리 사소한 것이라도 필기인식의 문제는 이제 구시대적이다. 이를 대체할 수 있는 MNSIT 데이터 세트의 보다 도전적인 버전이 필요했습니다.

MNIST 데이터 세트의 더 어려운 버전이 있습니까?

예, 있습니다. 패션 MNIST 데이터셋.

패션 MNIST 데이터세트

패션 MNIST 데이터 세트는 이전 MNIST 데이터 세트를 대체하기가 더 어렵습니다.

이 데이터 세트에는 신발, 티셔츠, 드레스 등과 같은 10가지 유형의 의류 항목에 대한 70,000개의 작은 정사각형 28×28픽셀 회색조 이미지가 포함되어 있습니다.

패션 MNIST 데이터 세트를 가져오고 플로팅하는 방법을 알아보려면 이 자습서를 읽으십시오.

결론

이 튜토리얼은 Python에서 MNIST 데이터 세트를 가져오고 플로팅하는 방법에 관한 것입니다. 우리는 또한 이 데이터 세트인 Fashion MNIST 세트의 더 어려운 교체에 대해서도 논의했습니다. 저희와 함께 즐거운 학습이 되셨기를 바랍니다!