Menu
CoddyTech

Regrouper les chiffres

Fait partie de la section Apprentissage non supervisé du Journey Machine Learning de Coddy. Leçon 45 sur 51.

Passons maintenant à la découverte. Demandez à k-means de former 10 groupes à partir des scans de 13 nombres, un par chiffre que vous espérez qu’il trouve. Il ne voit jamais d’étiquette :

km = KMeans(n_clusters=10, n_init=10, random_state=0).fit(X_small)

Un centre se trouve là où k-means a travaillé, dans l’espace PCA : 13 nombres, aucune image. pca.inverse_transform reconstruit ses 64 pixels :

À gauche, un graphique à barres des 13 nombres d’un centre k-means', deux grandes barres en premier, puis de petites. À droite, le même centre reconstruit sous forme d’une image floue de 8 sur 8 qui ressemble à un 0

value_counts() liste les clusters du plus grand au plus petit, ainsi une galerie de centres se lit comme un recensement des scans.

challenge icon

Défi

Moyen

Le code de départ contient les scans et X_small, leurs versions à 13 nombres.

  1. Trouvez 10 clusters dans X_small avec k-means.
  2. Reconstruisez les 64 pixels de chaque centre.
  3. Tracez une galerie de 2 par 5, en commençant par le plus grand cluster : chaque centre sous forme d’image de 8 par 8 dans gray_r, avec un titre indiquant sa taille, comme 120 scans. Ajustez la disposition et affichez-la.

Avec 5 clusters, le résultat ressemblerait à ceci :

Cinq centres de chiffres flous sur une rangée, intitulés 531, 367, 363, 359 et 177 scans

Le vôtre en compte dix. Coddy décrit chaque graphique. Quels chiffres k-means a-t-il trouvés tout seul ?

Essayez vous-même

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans

# D’après Observer les chiffres : 1,797 images de 64 pixels, avec une intensité d’encre de 0 à 16
digits = load_digits()
X = digits.data
y = digits.target

# D’après Réduire avec PCA : 80% de la variance dans 13 nombres par image
pca = PCA(n_components=0.8)
X_small = pca.fit_transform(X)

# Écrivez votre code ci-dessous
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Apprentissage non supervisé

Entraînez-vous par vous-même : Compilateur Python en ligne