Menu
CoddyTech

Die Ziffern ansehen

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

Dein letztes Projekt: 1.797 handschriftliche Scans und keine Lehrkraft. In fünf Lektionen findest du Gruppen wie diese, ohne auch nur ein einziges Etikett zu lesen:

Zehn unscharfe graue Ziffernbilder in zwei Reihen, die Mittelpunkte von zehn Gruppen, die k-means in den Scans gefunden hat: eine 9, eine verschwommene 1 oder 8, eine 7, eine 6, eine 2, eine 0, eine 3, eine 4, eine 5 und eine schmale 1

Jedes Projekt beginnt mit dem Betrachten. Die Streuung eines Pixels, seine Standardabweichung über viele Scans hinweg, zeigt, wo sich die Schreibenden uneinig sind. Hier, über alle 7er hinweg:

Ein 8-mal-8-Raster der Pixelstreuungen der Siebener', dunkleres Blau bedeutet größere Streuung: hoch entlang des oberen Balkens und des nach unten verlaufenden Strichs, 0.0 am linken Rand und unten rechts

spread = X[y == 7].std(axis=0)
print((spread == 0).sum())

Das gibt 15 aus: In jeder 7 sind fünfzehn Pixel leer. Ein Pixel, das sich nie verändert, sagt einem Modell nichts.

challenge icon

Aufgabe

Mittel

Fang an, die Daten zu erkunden. Der Starter lädt die Scans in X, die Ziffern in y und richtet ein Diagramm ein.

  1. Finde die Streuung jedes Pixels über alle Scans hinweg. Gib die Zeile, Spalte und Streuung (2 Dezimalstellen) des Pixels mit der größten Streuung aus und anschließend, wie viele Pixel in jedem Scan leer bleiben.
  2. Zeichne sie als 8-mal-8-Bild auf ax mit cmap="Blues" und einer Farbskala. Zeige es an.

Nur für die 1en:

Busiest pixel: row 6, column 5 (spread 6.53)
Blank in every scan: 12 pixels

Ein 8-mal-8-Bild mit dem Titel Where Writers Disagree und einer Farbskala: die Streuung jedes Pixels über die 1en, Zeilen und Spalten von 0 bis 7 nummeriert: zwei dunkle Bänder in der Mitte, wo Schreibende den Strich an unterschiedlichen Stellen setzen, und helle Ränder links und rechts

Deine umfasst alle 1.797 Scans. Coddy beschreibt dein Bild. Wo weichen die Schreibenden am meisten voneinander ab?

Probier es selbst

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits

# 1,797 handschriftliche Scans: jeweils 64 Pixel (8 mal 8, Tintenwert von 0 bis 16) und die geschriebene Ziffer
digits = load_digits()
X = digits.data
y = digits.target

fig, ax = plt.subplots()
ax.set_title("Where Writers Disagree")

# 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