Menu
CoddyTech

Handgeschriebene Ziffern

Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 57 von 58.

Die Sortiermaschine eines Postamts liest handschriftliche Postleitzahlenziffern aus den 8-mal-8-Scans, die du in „Digits at a Glance“ kennengelernt hast, load_digits:

Zwanzig handgeschriebene Ziffern in zwei Reihen, 0 bis 9 von zwei verschiedenen Schreibenden, als kleine, blockige graue Scans dargestellt; einige sehen anderen Ziffern sehr ähnlich

Zwei Kandidaten wollen den Job: k-NN mit dem von einem Ingenieur vorgeschlagenen k und ein Random Forest mit 100 Bäumen.

Diesmal sind die Fehler wichtig. Das Büro braucht den faireren Gewinner, seine Bewertung auf ungesehenen Scans und seine häufigste Verwechslung, also gehen diese Ziffern an eine Person.

challenge icon

Aufgabe

Schwer

Das Programm liest das k des Entwicklers ein; der Startcode richtet ein Diagramm mit Titel ein.

  1. Teile ein stratifiziertes Testviertel ab, random_state=0.
  2. Führe mit diesem k und einem Wald aus 100 Bäumen (random_state=0) eine 5-fache Kreuzvalidierung auf den Trainingszeilen durch. Gib jeden Mittelwert (3 Dezimalstellen) und das Gewinner-Modell aus.
  3. Trainiere das Gewinner-Modell und gib seine Testgenauigkeit aus.
  4. Gib den größten Fehler in der Test-Konfusionsmatrix aus, zeichne dann die Matrix auf ax und zeige sie an.

Auf einem anderen Rechner und mit 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)

Danach zeigt Coddy deine Matrix an.

Probier es selbst

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

# Schreibe deinen Code unten
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 Überwachtes Lernen

Übe selbstständig: Online-Python-Compiler