Menu
CoddyTech

Cifre scritte a mano

Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 57 di 58.

La macchina di smistamento di un ufficio postale legge le cifre scritte a mano dei codici postali dalle scansioni 8 per 8 che hai incontrato in Cifre a colpo d'occhio, load_digits:

Venti cifre scritte a mano disposte su due righe, da 0 a 9 scritte da due persone diverse, raffigurate come piccole scansioni grigie a blocchi; alcune assomigliano molto ad altre cifre

Due candidati vogliono il lavoro: k-NN, con il valore di k suggerito da un ingegnere, e una foresta casuale di 100 alberi.

Questa volta gli errori contano. L'ufficio ha bisogno del vincitore più equo, del suo punteggio su scansioni mai viste e della confusione più comune, quindi quelle cifre vengono consegnate a una persona.

challenge icon

Sfida

Difficile

Il programma legge il valore k dell’ingegnere; il codice iniziale prepara un grafico con titolo.

  1. Separa un quarto stratificato per il test, random_state=0.
  2. Esegui la convalida incrociata di k-NN con quel valore di k e una foresta di 100 alberi (random_state=0), con 5 fold, sulle righe di training. Stampa ciascuna media (3 decimali) e il vincitore.
  3. Allena il vincitore e stampa la sua accuratezza sul test.
  4. Stampa l’errore più grande nella matrice di confusione del test, poi disegna la matrice su ax e visualizzala.

Per un’altra macchina e 3:

k-NN: CV accuracy 0.979
Random forest: CV accuracy 0.968
Winner: k-NN
Test accuracy: 0.976
Most confused: 7 read as 2 (3 times)

Poi Coddy mostra la tua matrice.

Provalo tu

import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay

digits = load_digits()
X = digits.data
y = digits.target
k = int(input())

fig, ax = plt.subplots()
ax.set_title("Test Digits")

# 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 supervisionato

Esercitati da solo: Compilatore Python online