Поиск по сайту:

Набор данных 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. Надеюсь, вам было интересно учиться вместе с нами!