Python 中的 MNIST 數據集 – 基本導入和繪圖

歡迎來到這個關於MNIST數據集的教程。在這個教程中,我們將學習什麼是MNIST數據集,如何在Python中導入它,以及如何使用matplotlib進行繪圖。

MNIST數據集是什麼?

MNIST數據集是一個包含大量手寫數字的數據集。它在圖像處理領域非常受歡迎,通常用於機器學習算法的基準測試。

MNISTModified National Institute of Standards and Technology database(修改過的國家標準與技術研究所數據庫)的縮寫。

MNIST包含了一組70,000個28 x 28的手寫數字圖像,範圍從0到9。

該數據集已經被分成了訓練集和測試集,我們稍後會看到這一點。

有關MNIST的更多信息,請參閱其維基百科頁面。我們將從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),這是因為有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 數據集的一個更具挑戰性的替代品。

該數據集包含 70,000 張 10 種服裝類型的小正方形 28×28 像素灰度圖像,如鞋子、T 恤、連衣裙等。

要了解如何導入並繪製時尚 MNIST 數據集,請閱讀此教程。

結論

本教程介紹了如何在 Python 中導入和繪製 MNIST 數據集。我們還討論了該數據集的一個更具挑戰性的替代品,即時尚 MNIST 集。希望您和我們一起學習愉快!

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