Python MNIST数据集完整教程:从导入到可视化绘图

欢迎来到这个关于MNIST数据集的教程。在这个教程中,我们将学习什么是MNIST数据集,如何在Python中导入它,并如何使用matplotlib进行绘图。

MNIST数据集是什么?

MNIST数据集是一个包含大量手写数字的集合。在图像处理领域中,它是一个非常受欢迎的数据集,经常被用于评估机器学习算法的性能。

MNIST是”改进的标准与技术研究所数据库”(Modified National Institute of Standards and Technology database)的简称。

MNIST包含了一个由70,000个28×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数据集

这就是我们的数据长什么样子!

想象一下,有70,000张与这些图片完全相似的图片。这就是数据集中的内容。数据集之所以受欢迎,一个原因就是规模如此庞大。

不管多么微不足道,手写识别问题现在已经过时了。我们需要一个更具挑战性的MNIST数据集的版本,作为它的替代品。

MNIST数据集是否有更具挑战性的版本可用?

是的,有的。时尚MNIST数据集。

时尚MNIST数据集

时尚MNIST数据集是取代旧版MNIST数据集更具挑战性的选择。

这个数据集包含七万个小方块,尺寸为28×28像素,灰阶图像,展示了10种不同类型的服装,比如鞋子、T恤、连衣裙等等。

要学习如何导入和绘制时尚MNIST数据集,请阅读此教程。

结论

这个教程是关于在Python中导入和绘制MNIST数据集的。我们还讨论了一个更具挑战性替代的数据集,时尚MNIST。希望你在与我们一起学习时玩得开心!

bannerAds