Menu
CoddyTech

Komponenten als Muster

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

Was hat sich PCA angesehen? Jede Komponente besteht aus 64 Gewichten, eines pro Pixel, und components_ enthält eine Zeile pro Komponente:

pca = PCA(n_components=4).fit(X)
print(pca.components_.shape)

Dies gibt (4, 64) aus. Forme eine Zeile in ein 8-mal-8-Bild um, und sie wird zu einem Bild. cmap="gray_r" bedeutet umgekehrte Graustufen: große Gewichte sind dunkel, negative hell:

ax.imshow(pca.components_[0].reshape(8, 8), cmap="gray_r")

Die ersten vier Komponenten der Ziffern als 8-mal-8-Bilder, grau, wenn ein Gewicht nahe null liegt, dunkel, wenn es groß ist, hell, wenn es negativ ist

Komponente 1 ist dort dunkel, wo die 4er und 6er Tinte haben, daher landen sie rechts auf der Karte. Ein Scan erzielt einen hohen Wert, wenn seine Tinte auf dunkle Pixel fällt.

challenge icon

Aufgabe

Mittel

Ein Kalligrafielehrer möchte sehen, auf welche Arten Menschen eine Ziffer schreiben. Das Programm liest die Ziffer ein, und der Starter speichert die Scans in X.

  1. Führe PCA mit 3 Komponenten auf X aus.
  2. Zeichne die Komponente i auf axs[i] als 8-mal-8-Bild mit cmap="gray_r" und mit Titeln von Component 1 bis Component 3.
  3. Zeige das Diagramm an.

Für die Zweien zeichnet es dies. Coddy beschreibt dann deine Teilbilder:

Drei 8-mal-8-Komponentenbilder der handgeschriebenen Zweien mit den Titeln Component 1, Component 2 und Component 3, jedes mit eigenen dunklen und hellen Strichen

Probier es selbst

import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA

# Jeder Scan einer Ziffer, die aus der Eingabe gelesen wird: 64 Pixel pro Zeile
d = int(input())
digits = load_digits()
X = digits.data[digits.target == d]

# Ändere die folgende Zeile nicht
fig, axs = plt.subplots(1, 3)

# Schreibe deinen Code darunter
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