Genauigkeit allein reicht nicht
Warum 99 Prozent Genauigkeit ein nutzloses Modell sein können, was eine zurückgehaltene Testmenge wirklich beweist und welche zwei Zahlen die Genauigkeit schlagen, wenn eine Antwort selten ist.
Genauigkeit ist der Anteil der Zeilen, bei denen das Modell richtig lag. Sie ist die erste Zahl, zu der alle greifen, sie ist leicht zu erklären, und für sich genommen ist sie eine der irreführendsten Zahlen des ganzen Gebiets. Hier ist die Falle, und sie braucht kein kompliziertes Modell. Es geht um einen medizinischen Test auf eine seltene Krankheit in einer Stadt mit tausend Menschen.
disease screening, 1000 people, 10 are ill
model: always answer no
correct: 990 healthy people
wrong: 10 ill people missed
accuracy = 990 / 1000 = 99 percentEin Modell, das gar nichts tut, und dafür 99 Prozent bekommt.Dieses Modell antwortet bei jeder einzelnen Person nein. Es hat nichts gelernt, es wird nie eine kranke Person finden, und es bekommt trotzdem 99 Prozent, weil die Krankheit selten und die Gesunden die Mehrheit sind. Genauigkeit belohnt still die häufigste Klasse. Sobald eine Antwort viel häufiger ist als die andere, sieht ein faules Modell, das immer die häufige Antwort gibt, auf dem Papier hervorragend aus und ist in der Praxis wertlos.
Jetzt die zweite Falle, und sie handelt von Ehrlichkeit statt von Seltenheit. Ein Modell lässt sich an genau den Zeilen prüfen, aus denen es gelernt hat, so wie man einer Schülerin das Arbeitsblatt zurückgeben könnte, auf dem die Antworten noch stehen. Natürlich ist das Ergebnis hoch. Die Zahl, die du wirklich willst, kommt aus Zeilen, die das Modell nie getroffen hat. Deshalb teilst du die Tabelle vor dem Training: ein Teil trainiert das Modell, der Rest wird versiegelt und einmal geöffnet, ganz am Ende. Dieser versiegelte Teil ist die Testmenge.
Auf Trainingsdaten zu testen ist kein kleiner Fehler, sondern die weggeworfene Messung selbst. Wenn du das Modell einstellst, auf die Testbewertung schaust und wieder einstellst, hört die Testmenge allmählich auf, ungesehen zu sein, und wird auswendig gelernt. Fachleute teilen die Daten deshalb in drei Teile: Training, Validierung zum Einstellen und eine Testmenge, die genau einmal berührt wird. Berührst du sie öfter, bedeutet ihre Zahl nichts mehr.
spam filter, 100 emails, 20 are spam
+----------------+----------------+----------------+
| | says spam | says inbox |
+----------------+----------------+----------------+
| is spam | 16 | 4 |
| is not spam | 3 | 77 |
+----------------+----------------+----------------+
accuracy = (16 + 77) / 100 = 93 percent
precision = 16 / 19 = 84 percent
recall = 16 / 20 = 80 percentJede Vorhersage eines Spamfilters fällt in genau eines dieser vier Felder.Die vier Felder sind die Konfusionsmatrix, und die zwei nützlichen Zahlen liest man direkt daraus ab. Präzision fragt: von allem, was das Modell als Spam markiert hat, welcher Anteil war wirklich Spam? Niedrige Präzision heißt, dass echte Post vernichtet wird, und genau das beschweren sich die Nutzer. Trefferquote fragt: von all dem Spam, der existierte, welchen Anteil hat das Modell gefunden? Niedrige Trefferquote heißt, dass weiter Spam ankommt, und darüber beschwert sich niemand. Beide beschreiben dasselbe Modell und beantworten völlig verschiedene Fragen.
Die beiden Zahlen ziehen in verschiedene Richtungen, und ein einziger Regler bewegt beide. Mach den Filter strenger, steigt die Präzision und die Trefferquote fällt: weniger Fehlalarme, mehr Spam kommt durch. Mach ihn lockerer, ist es umgekehrt. Es gibt keine Einstellung, die beide zugleich maximiert, also lautet die echte Frage nie welche Bewertung ist die beste, sondern was kostet jeder Fehlertyp hier. Ein Stellenangebot zu blockieren ist eine Katastrophe; eine Werbung durchzulassen ist ein Schulterzucken.
same test, two thresholds
+----------------+-----------+-----------+
| threshold | precision | recall |
+----------------+-----------+-----------+
| strict | high | low |
| loose | low | high |
+----------------+-----------+-----------+
ask instead: what does a miss cost here?Ein Schwellenwert und zwei Zahlen, die sich in entgegengesetzte Richtungen bewegen.Praxis
Ein Screeningtest auf eine seltene Krankheit meldet 99 Prozent Genauigkeit in einer Stadt mit 1000 Menschen. Nur 10 davon haben die Krankheit. Ein Kollege sagt, der Test sei praktisch gelöst. Was solltest du zuerst prüfen?
Hinweise
- Rechne aus, wie viele Menschen in so einer Stadt die Krankheit tatsächlich haben, bevor du die Genauigkeit beurteilst.
- Ein Modell, das immer nein sagt, liegt fast immer richtig und hilft niemandem in der seltenen Klasse.
Ordne jede Zahl des Spamfilters dem zu, was sie wirklich misst.
Hinweise
- Präzision fragt nach den Mails, auf die der Filter reagiert hat; Trefferquote fragt nach dem Spam, der existierte.
- Von 20 Spam-Mails blieben 4 im Posteingang: diese Zahl gehört zur Trefferquote.
Bring die Schritte einer ehrlichen Bewertung in die richtige Reihenfolge.
- 1Das Modell um Vorhersagen für die versiegelten Zeilen bitten
- 2precision und recall gegen die echten Labels dieser Zeilen berechnen
- 3Das Modell nur auf dem Trainingsteil trainieren
- 4Die Tabelle in einen Trainings- und einen Testteil teilen und den Testteil versiegeln
Hinweise
- Die zurückgehaltenen Zeilen müssen vor dem Lernen versiegelt werden, sonst beweist die Teilung nichts.
- Zwei Modelle lassen sich erst vergleichen, wenn beide eine Zahl auf denselben zurückgehaltenen Zeilen geliefert haben.