Menu
CoddyTech

Componenti come schemi

Fa parte della sezione Apprendimento non supervisionato del percorso Machine Learning di Coddy. Lezione 30 di 51.

Che cosa ha esaminato PCA? Ogni componente è costituita da 64 pesi, uno per pixel, e components_ contiene una riga per componente:

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

Stampa (4, 64). Rimodella una riga in 8 per 8 e diventa un'immagine. cmap="gray_r" è una scala di grigi invertita: i pesi grandi sono scuri, quelli negativi chiari:

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

Le prime quattro componenti delle cifre come immagini 8 per 8, grigie quando un peso è vicino a zero, scure quando è grande, chiare quando è negativo

Il componente 1 è scuro dove i 4 e i 6 hanno inchiostro, quindi finiscono a destra sulla mappa. Una scansione ottiene un punteggio alto quando il suo inchiostro cade sui pixel scuri.

challenge icon

Sfida

Medio

Un insegnante di calligrafia vuole vedere i modi in cui le persone scrivono una cifra. Il programma legge la cifra e il codice iniziale conserva le sue scansioni in X.

  1. Adatta PCA con 3 componenti su X.
  2. Disegna la componente i su axs[i] come un'immagine di 8 per 8 con cmap="gray_r", con titoli da Component 1 a Component 3.
  3. Mostra il grafico.

Per i 2, disegna questo. Coddy descrive poi i tuoi pannelli:

Tre immagini di componenti di 8 per 8 dei 2 scritti a mano, intitolate Component 1, Component 2 e Component 3, ciascuna con tratti scuri e chiari

Provalo tu

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

# Ogni scansione di una cifra, letta dall'input: 64 pixel per riga
d = int(input())
digits = load_digits()
X = digits.data[digits.target == d]

# Non modificare la riga seguente
fig, axs = plt.subplots(1, 3)

# Scrivi il tuo codice qui sotto
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Apprendimento non supervisionato

Esercitati da solo: Compilatore Python online