Набор данных MNIST в Python — базовый импорт и построение графиков
Добро пожаловать в этот учебник по набору данных MNIST. В этом руководстве мы узнаем, что такое набор данных MNIST, как его импортировать в Python и как построить его с помощью matplotlib.
Что такое набор данных MNIST?
Набор MNIST представляет собой большую коллекцию рукописных цифр. Это очень популярный набор данных в области обработки изображений. Он часто используется для бенчмаркинга алгоритмов машинного обучения.
MNIST – это сокращение от модифицированная база данных Национального института стандартов и технологий.
MNIST содержит коллекцию из 70 000 изображений 28 x 28 рукописных цифр от 0 до 9.
Набор данных уже разделен на обучающий и тестовый наборы. Мы увидим это позже в учебнике.
Для получения дополнительной информации о MNIST обратитесь к его странице в Википедии. Мы собираемся импортировать набор данных из Keras.
Давайте начнем с загрузки набора данных в нашу записную книжку Python.
Загрузка 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 тыс. изображений, а в тестовом наборе — 10 тыс. изображений.
Размерность нашего обучающего вектора (60000, 28, 28), потому что имеется 60000 изображений в градациях серого с размером 28X28.
Полный код для загрузки набора данных 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))
Давайте узнаем, как построить этот набор данных.
Построение набора данных MNIST с использованием matplotlib
Всегда полезно построить график набора данных, над которым вы работаете. Это даст вам хорошее представление о том, с какими данными вы имеете дело.
Как ответственный специалист по данным, вы должны всегда отображать набор данных как нулевой шаг.
Чтобы построить набор данных, используйте следующий фрагмент кода:
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?
Да, есть. Набор данных Fashion MNIST.
Набор данных MNIST о моде
Набор данных Fashion MNIST представляет собой более сложную замену старому набору данных MNIST.
Этот набор данных содержит 70 000 небольших квадратных изображений 28×28 пикселей в градациях серого предметов 10 видов одежды, таких как обувь, футболки, платья и многое другое.
Чтобы узнать, как импортировать и построить набор данных моды MNIST, прочтите это руководство.
Заключение
Это руководство было посвящено импорту и построению набора данных MNIST в Python. Мы также обсудили более сложную замену этого набора данных — набор Fashion MNIST. Надеюсь, вам было интересно учиться вместе с нами!