Analyse de l'ensemble de données de chiffres

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Dans ce laboratoire, nous allons explorer l'ensemble de données digits de scikit-learn. Cet ensemble de données est composé de 1797 images de 8x8 pixels, chacune représentant un chiffre écrit à la main de 0 à 9. Notre objectif est d'analyser cet ensemble de données et de comprendre comment nous pouvons l'utiliser pour classifier les chiffres écrits à la main à l'aide d'algorithmes d'apprentissage automatique.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous réglerons rapidement le problème pour vous.

Importation de l'ensemble de données

La première étape consiste à importer l'ensemble de données digits de scikit-learn en utilisant le code suivant :

from sklearn import datasets

## Charge l'ensemble de données digits
digits = datasets.load_digits()

Visualisation de l'ensemble de données

Pour mieux comprendre l'ensemble de données, nous pouvons visualiser une image d'échantillon à l'aide de matplotlib. Le code suivant affiche le dernier chiffre dans l'ensemble de données :

import matplotlib.pyplot as plt

## Affiche le dernier chiffre
plt.figure(1, figsize=(3, 3))
plt.imshow(digits.images[-1], cmap=plt.cm.gray_r, interpolation="nearest")
plt.show()

Préparation de l'ensemble de données pour l'apprentissage automatique

Avant de pouvoir entraîner un modèle d'apprentissage automatique sur l'ensemble de données, nous devons préparer les données en les divisant en ensembles d'entraînement et de test. Nous pouvons le faire à l'aide de la fonction train_test_split de scikit-learn :

from sklearn.model_selection import train_test_split

## Divise l'ensemble de données en ensembles d'entraînement et de test
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.2, random_state=42)

Entraînement d'un modèle d'apprentissage automatique

Maintenant que nous avons préparé l'ensemble de données, nous pouvons entraîner un modèle d'apprentissage automatique sur les données d'entraînement. Dans cet exemple, nous allons utiliser un algorithme de Machine à Vecteurs de Support (SVM) :

from sklearn.svm import SVC

## Crée le classifieur SVM
clf = SVC(kernel='linear')

## Entraîne le classifieur sur les données d'entraînement
clf.fit(X_train, y_train)

Évaluation du modèle

Pour évaluer les performances de notre modèle, nous pouvons utiliser la fonction accuracy_score de scikit-learn :

from sklearn.metrics import accuracy_score

## Prédit les étiquettes de l'ensemble de test
y_pred = clf.predict(X_test)

## Calcule la précision du modèle
accuracy = accuracy_score(y_test, y_pred)

## Affiche la précision du modèle
print("Précision :", accuracy)

Amélioration du modèle

Si la précision de notre modèle n'est pas satisfaisante, nous pouvons essayer de l'améliorer en ajustant les hyperparamètres de l'algorithme SVM. Par exemple, nous pouvons essayer de changer la valeur du paramètre C :

## Crée le classifieur SVM avec une valeur différente de C
clf = SVC(kernel='linear', C=0.1)

## Entraîne le classifieur sur les données d'entraînement
clf.fit(X_train, y_train)

## Prédit les étiquettes de l'ensemble de test
y_pred = clf.predict(X_test)

## Calcule la précision du modèle
accuracy = accuracy_score(y_test, y_pred)

## Affiche la précision du modèle
print("Précision :", accuracy)

Sommaire

Dans ce laboratoire, nous avons exploré l'ensemble de données digits de scikit-learn et appris comment entraîner un modèle d'apprentissage automatique pour classifier des chiffres manuscrits. Nous avons également appris comment évaluer les performances du modèle et comment l'améliorer en ajustant les hyperparamètres de l'algorithme. Cet ensemble de données est un excellent outil pour quiconque est intéressé à l'apprentissage des algorithmes de classification d'apprentissage automatique.