Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Modelle beurteilen: Precision und Recall

Nach dieser Lektion: Ich kann ein Modell mit Konfusionsmatrix, Precision und Recall beurteilen.

Lektion, 55 Min.1 BefehlJupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Wie gut ist ein Modell wirklich?

Ein Modell zu beurteilen heißt, seine Vorhersagen mit der Wahrheit zu vergleichen, und zwar an Daten, die es nie gesehen hat. Genauigkeit allein genügt dafür nicht, denn sie verbirgt, welche Fehler passieren.

Eine Bibliothek sagt voraus, welche Bücher verspätet zurückkommen, um rechtzeitig zu mahnen. Eine zu Unrecht verschickte Mahnung ärgert, eine vergessene kostet Geld. Beide Fehler muss man getrennt sehen.

Am Ende dieser Lektion

Notiz

Ich kann ein Modell mit Konfusionsmatrix, Precision und Recall beurteilen.

Schlüsselwörter

BegriffWas er bedeutet
TestmengeZeilen, die das Modell beim Lernen nie gesehen hat
Konfusionsmatrixeine Tabelle der richtigen und falschen Vorhersagen
Precisionder Anteil echter Treffer unter allen gemeldeten
Recallder Anteil gefundener unter allen echten Fällen
Genauigkeitder Anteil aller richtigen Vorhersagen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Testmenge zeigt, was ein Modell wirklich kann

Ein Modell, das seine Lernzeilen auswendig kennt, wirkt dort fehlerfrei und versagt an neuen Zeilen. Deshalb hält man vor dem Lernen einen Teil der Daten zurück, die Testmenge.

Das Modell lernt nur an den übrigen Zeilen. Seine Güte misst man allein an der Testmenge, denn nur sie ahmt neue Bücher nach.

Eine Konfusionsmatrix zählt vier Arten von Ergebnissen

Wir nennen „verspätet“ das Positive. Ein Buch kann richtig als verspätet erkannt sein, zu Unrecht so genannt werden, übersehen werden oder richtig als pünktlich gelten.

Die Konfusionsmatrix zählt alle vier Fälle. Daraus ergeben sich Genauigkeit, Precision und Recall.

Beispiel: zwölf Bücher der Testmenge

Als verspätet gemeldetAls pünktlich gemeldetSumme
Wirklich verspätet3 (richtig positiv)2 (falsch negativ)5
Wirklich pünktlich1 (falsch positiv)6 (richtig negativ)7
Summe4812

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die richtigen Treffer zählen

Befehl
docker exec jupyter python3 -c "print(sum(1 for w, g in zip([1,1,1,1,1,0,0,0,0,0,0,0],[1,1,1,0,0,1,0,0,0,0,0,0]) if w == 1 and g == 1))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Precision und Recall fragen Verschiedenes

Die Precision fragt: Von den Büchern, die das Modell als verspätet meldet, wie viele sind es wirklich? Hier 3 von 4, also 0,75.

Der Recall fragt: Von den wirklich verspäteten Büchern, wie viele findet das Modell? Hier 3 von 5, also 0,6. Wer Mahnungen nie zu Unrecht verschicken will, achtet auf die Precision, wer keine vergessen will, auf den Recall.

Die vier Zahlen in Python zählen

Code: python
# 1 heißt: Das Buch kommt verspätet zurück. Zwölf Bücher der Testmenge.
wahr = [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]
geschaetzt = [1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0]
richtig_positiv = 0
falsch_positiv = 0
falsch_negativ = 0
richtig_negativ = 0
for i in range(len(wahr)):
    if wahr[i] == 1 and geschaetzt[i] == 1:
        richtig_positiv = richtig_positiv + 1
    elif wahr[i] == 0 and geschaetzt[i] == 1:
        falsch_positiv = falsch_positiv + 1
    elif wahr[i] == 1 and geschaetzt[i] == 0:
        falsch_negativ = falsch_negativ + 1
    else:
        richtig_negativ = richtig_negativ + 1
print(richtig_positiv, falsch_positiv, falsch_negativ, richtig_negativ)
print("Präzision:", richtig_positiv / (richtig_positiv + falsch_positiv))
print("Trefferquote:", richtig_positiv / (richtig_positiv + falsch_negativ))
# Ändern Sie geschaetzt so, dass das Modell nie "verspätet" sagt. Was geschieht mit der Präzision?

Ein häufiger Fehler

Warnung

Viele halten ein Modell mit hoher Genauigkeit für gut. Sind nur 5 von 100 Büchern verspätet, erreicht ein Modell, das nie „verspätet“ sagt, schon 95 Prozent und findet doch kein einziges. Prüfen Sie deshalb den Recall und die Precision der seltenen Klasse.

Über dieses Lab und seinen Quellcode: JupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.