Menu
CoddyTech

Die Ziffern gruppieren

Teil des Abschnitts Unüberwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 45 von 51.

Nun zur Entdeckung. Bitte k-means, die 13 Zahlenwerte umfassenden Scans in 10 Gruppen einzuteilen – eine pro Ziffer, die es hoffentlich findet. Es sieht niemals ein Label:

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

Ein Zentrum liegt dort, wo k-means gearbeitet hat, im PCA-Raum: 13 Zahlen, kein Bild. pca.inverse_transform rekonstruiert seine 64 Pixel:

Links ein Balkendiagramm mit den 13 Zahlen eines k-means-Zentrums, zuerst zwei hohe Balken, dann kleine. Rechts dasselbe Zentrum, rekonstruiert als verschwommenes 8-mal-8-Bild, das wie eine 0 aussieht

value_counts() listet die Cluster von den größten an absteigend auf, sodass eine Galerie der Zentren wie eine Volkszählung der Scans wirkt.

challenge icon

Aufgabe

Mittel

Der Starter enthält die Scans und X_small, ihre Versionen mit 13 Zahlen.

  1. Finde mit k-means 10 Cluster in X_small.
  2. Rekonstruiere die 64 Pixel jedes Zentrums.
  3. Zeichne eine Galerie mit 2 mal 5 Bildern, beginnend mit dem größten Cluster: jedes Zentrum als 8 mal 8 Bild in gray_r, mit seiner Größe als Titel, zum Beispiel 120 scans. Richte das Layout ordentlich aus und zeige es an.

Mit 5 Clustern würde es so aussehen:

Fünf unscharfe Ziffernzentren in einer Reihe, betitelt mit 531, 367, 363, 359 und 177 Scans

Deine Galerie hat zehn. Coddy beschreibt jedes Diagramm. Welche Ziffern hat k-means selbstständig gefunden?

Probier es selbst

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

# Aus „Look at the Digits“: 1,797 Scans mit 64 Pixeln, Tintenwerte von 0 bis 16
digits = load_digits()
X = digits.data
y = digits.target

# Aus „Shrink with PCA“: 80% der Varianz in 13 Zahlen pro Scan
pca = PCA(n_components=0.8)
X_small = pca.fit_transform(X)

# Schreibe deinen Code unten
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Unüberwachtes Lernen

Übe selbstständig: Online-Python-Compiler