PythonでのMNISTデータセット – 基本的なインポートとプロット

ようこそ、MNISTデータセットのチュートリアルへ。このチュートリアルでは、MNISTデータセットとは何か、Pythonでのインポート方法、およびmatplotlibを使用してプロットする方法を学びます。

MNISTデータセットとは何ですか?

MNISTセットは手書きの数字の大きなコレクションです。これは画像処理の分野で非常に人気のあるデータセットで、機械学習アルゴリズムのベンチマークとしてよく使用されます。

MNIST修正された国立標準技術研究所データベースの略です。

MNISTには70,000枚の28 x 28の手書き数字の画像が含まれています。0から9まで

の数字です。データセットはすでにトレーニングセットとテストセットに分かれています。この詳細は後で説明します。

MNISTに関する詳細は、そのWikipediaページを参照してください。データセットのインポートはKerasから行います。

さて、データセットをPythonのノートブックに読み込むことから始めましょう。

Kerasから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,)

トレーニングセットには60,000枚の画像があり、テストセットには10,000枚の画像があります。

トレーニングベクトルの次元は(60000, 28, 28)です。これは、28×28のグレースケール画像60,000枚あるためです。

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枚あると想像してください。それがデータセットの中にあるものです。その容量が多いため、データセットは人気がある理由の1つです。

手書き文字認識の問題はどんなに些細なものであっても時代遅れです。MNSITデータセットのより挑戦的なバージョンが必要でした。それがその代替として機能することができるようなもの。

より挑戦的なバージョンのMNISTデータセットは存在しますか?

はい、存在します。ファッションMNISTデータセット。

Fashion MNISTデータセット

Fashion MNISTデータセットは、古いMNISTデータセットのより難しい代替品です。

このデータセットには、10種類の衣類(靴、Tシャツ、ドレスなど)の小さな正方形の28×28ピクセルの白黒画像が70,000枚含まれています。

Fashion MNISTデータセットをインポートしてプロットする方法については、このチュートリアルを参照してください。

結論

このチュートリアルでは、PythonでMNISTデータセットをインポートしてプロットする方法について説明しました。また、このデータセットのより難しい代替品であるFashion MNISTセットについても議論しました。一緒に学ぶのが楽しかったですね!

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