Menu
CoddyTech

Odręcznie pisane cyfry

Część sekcji Uczenie nadzorowane ścieżki Machine Learning w Coddy. Lekcja 57 z 58.

Maszyna sortująca na poczcie odczytuje odręcznie zapisane cyfry kodu pocztowego ze skanów o wymiarach 8 na 8, które poznano w lekcji „Digits at a Glance”, load_digits:

Dwadzieścia odręcznie zapisanych cyfr w dwóch rzędach, od 0 do 9, napisanych przez dwóch różnych autorów i przedstawionych jako małe, kanciaste, szare skany; niektóre bardzo przypominają inne cyfry

Dwóch kandydatów ubiega się o pracę: k-NN, z wartością k zaproponowaną przez inżyniera, oraz las losowy składający się ze 100 drzew.

Tym razem błędy mają znaczenie. Biuro potrzebuje sprawiedliwszego zwycięzcy, jego wyniku na niewidzianych wcześniej skanach oraz najczęstszej pomyłki, więc te cyfry trafiają do człowieka.

challenge icon

Wyzwanie

Trudny

Program odczytuje wartość k inżyniera; kod początkowy przygotowuje wykres z tytułem.

  1. Wydziel stratyfikowaną ćwiartkę danych testowych, random_state=0.
  2. Przeprowadź walidację krzyżową k-NN z tym k i lasem składającym się ze 100 drzew (random_state=0), używając 5 podziałów i wierszy treningowych. Wypisz każdą średnią (z dokładnością do 3 miejsc po przecinku) oraz zwycięzcę.
  3. Wytrenuj zwycięski model i wypisz jego dokładność na danych testowych.
  4. Wypisz największy błąd w testowej macierzy pomyłek, a następnie narysuj macierz na ax i wyświetl ją.

Dla innego urządzenia i wartości 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)

Następnie Coddy wyświetli twoją macierz.

Spróbuj swoich sił

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")

# Napisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Uczenie nadzorowane

Poćwicz samodzielnie: Kompilator Python online