Menu
CoddyTech

Osserva le cifre

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

Il tuo ultimo progetto: 1.797 scansioni scritte a mano e nessun insegnante. Nel corso di cinque lezioni, troverai gruppi come questi senza leggere una sola etichetta:

Dieci immagini sfocate in scala di grigi di cifre disposte su due righe, i centri dei dieci gruppi che k-means ha trovato nelle scansioni: un 9, un 1 o 8 sfocato, un 7, un 6, un 2, uno 0, un 3, un 4, un 5 e un 1 sottile

Ogni progetto inizia osservando. La dispersione di un pixel, la sua deviazione standard su molte scansioni, mostra dove i writer non sono d'accordo. Qui, per tutti i 7:

Una griglia 8 per 8 delle dispersioni dei pixel dei sette', in blu più scuro per valori maggiori: alte lungo la barra superiore e il tratto verso il basso, 0.0 lungo il bordo sinistro e nell'angolo in basso a destra

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

Questo stampa 15: quindici pixel sono vuoti ogni 7. Un pixel che non cambia mai non dice nulla a un modello.

challenge icon

Sfida

Medio

Inizia a esplorare. Il codice iniziale carica le scansioni in X, le cifre in y e prepara un grafico.

  1. Trova la dispersione di ciascun pixel su tutte le scansioni. Stampa la riga, la colonna e la dispersione (2 decimali) del pixel con la dispersione maggiore, poi quanti pixel rimangono vuoti in ogni scansione.
  2. Rappresentali come un'immagine di 8 per 8 su ax, con cmap="Blues" e una barra dei colori. Visualizzala.

Considerando solo gli 1:

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

Un'immagine di 8 per 8 intitolata Where Writers Disagree, con una barra dei colori: la dispersione di ciascun pixel sugli 1, righe e colonne numerate da 0 a 7: due bande scure al centro, dove gli autori tracciano il tratto in punti diversi, e bordi chiari a sinistra e a destra

Il tuo grafico include tutte le 1.797 scansioni. Coddy descrive la tua immagine. Su quale parte gli autori non sono più d'accordo?

Provalo tu

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

# 1,797 scansioni scritte a mano: 64 pixel ciascuna (8 per 8, intensità dell'inchiostro da 0 a 16) e la cifra scritta
digits = load_digits()
X = digits.data
y = digits.target

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

# 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