Note
Go to the end to download the full example code or to run this example in your browser via JupyterLite or Binder.
Recognizing hand-written digits#
This example shows how scikit-learn can be used to recognize images of hand-written digits, from 0-9.
# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause
# Standard scientific Python imports
import matplotlib.pyplot as plt
# Import datasets, classifiers and performance metrics
from sklearn import datasets, metrics, svm
from sklearn.model_selection import train_test_split
Digits dataset#
The digits dataset consists of 8x8
pixel images of digits. The images attribute of the dataset stores
8x8 arrays of grayscale values for each image. We will use these arrays to
visualize the first 4 images. The target attribute of the dataset stores
the digit each image represents and this is included in the title of the 4
plots below.
Note: if we were working from image files (e.g., ‘png’ files), we would load
them using matplotlib.pyplot.imread.
digits = datasets.load_digits()
_, axes = plt.subplots(nrows=1, ncols=4, figsize=(10, 3))
for ax, image, label in zip(axes, digits.images, digits.target):
ax.set_axis_off()
ax.imshow(image, cmap=plt.cm.gray_r, interpolation="nearest")
ax.set_title("Training: %i" % label)