Wenn Daten die Welt schief zeigen
Verzerrung in Daten, englisch Bias, heißt: Ein Datensatz zeigt einen Teil der Wirklichkeit zu groß und einen anderen zu klein. Ein Modell, das daraus lernt, übernimmt diese Schieflage und macht sie zur Regel.
Eine Stadt will Familien bei der Schulplatzsuche helfen. Das Modell lernt aus einer Online-Umfrage. 90 von 100 Antworten kommen aus Gruppe A, obwohl nur 60 von 100 Familien dazugehören. Wessen Wünsche kennt das Modell kaum?
Am Ende dieser Lektion
Notiz
Ich kann an einem Datensatz zeigen, an welcher Stelle Verzerrung hineingelangt ist.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Verzerrung (Bias) | eine Schieflage in Daten oder Entscheidungen | |
| Stichprobe | die Fälle, die ein Datensatz tatsächlich enthält | |
| Grundgesamtheit | alle Fälle, über die man etwas sagen will | |
| Anteil | der Teil einer Gruppe an allen Zeilen | 25 % |
| Etikett | die Antwort, die ein Modell lernen soll | genehmigt |
| Stellvertretermerkmal | eine Spalte, die eine andere Spalte mitverrät |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Eine Stichprobe zeigt nur, wen sie enthält
Ein Datensatz ist meist nur eine Stichprobe: ein Ausschnitt der Grundgesamtheit, über die man etwas sagen will. Ist der Ausschnitt schief gewählt, ist es auch alles, was daraus folgt.
Prüfen Sie deshalb zuerst die Anteile. Wie groß ist jede Gruppe in den Daten, und wie groß ist sie in der Wirklichkeit? Eine Gruppe mit sehr kleinem Anteil liefert dem Modell kaum Beispiele zum Lernen.
Beispiel: die Umfrage zu Schulplätzen
| Gruppe | Antworten | Anteil in der Umfrage | Anteil der Familien |
|---|---|---|---|
| A | 180 | 90 % | 60 % |
| B | 20 | 10 % | 40 % |
| Summe | 200 | 100 % | 100 % |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Anteile selbst ausrechnen
# Antworten einer Umfrage zu Schulplätzen: aus welcher Gruppe kamen sie?
antworten = {"A": 180, "B": 20}
erwartet = {"A": 0.6, "B": 0.4}
gesamt = antworten["A"] + antworten["B"]
for gruppe in antworten:
anteil = antworten[gruppe] / gesamt
print(gruppe, "Anteil in der Umfrage:", round(anteil, 2), "Anteil der Familien:", erwartet[gruppe])
# Setzen Sie die Antworten von B auf 80 und starten Sie neu. Wie ändern sich die Anteile?
Ein Etikett ist eine Entscheidung von Menschen
Das Etikett wirkt wie eine Tatsache, ist aber oft eine Festlegung. Der Verleih in unserem Lab nennt einen Tag „voll“ ab 300 Ausleihen. Wer 250 wählt, bekommt eine andere Wahrheit.
Im Alltag ist es genauso. Als „gute Fachkraft“ gilt oft, wer befördert wurde. Das Modell lernt dann, wer befördert wird, und nicht, wer gut arbeitet. Der Befehl unten zählt in hires.csv die Tage ab 250, ab 300 und ab 350 Ausleihen.
Dieselben Tage mit drei Grenzen zählen
docker exec jupyter python3 -c "import csv; z = [int(x['hires']) for x in csv.DictReader(open('hires.csv'))]; print('ab 250:', sum(1 for n in z if n >= 250), 'ab 300:', sum(1 for n in z if n >= 300), 'ab 350:', sum(1 for n in z if n >= 350))"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Alte Entscheidungen werden zu neuen Regeln
Dieselben 365 Tage ergeben je nach Grenze 225, 131 oder 63 volle Tage: Das Etikett gehört zur Frage, nicht zur Natur.
Viele Daten sind außerdem das Protokoll früherer Entscheidungen. Waren sie ungleich, lernt ein Modell die Ungleichheit mit. Eine Bank hat früher bei Gruppe A 60 von 100 Anträgen genehmigt, bei Gruppe B nur 30. Ein Modell hält diesen Unterschied dann für ein Naturgesetz.
Beispiel: frühere Kreditentscheidungen
| Gruppe | Anträge | Genehmigt | Genehmigungsquote |
|---|---|---|---|
| A | 100 | 60 | 60 % |
| B | 100 | 30 | 30 % |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein häufiger Fehler
Warnung
Viele denken: Streicht man die Spalte „Gruppe“, kann das Modell nicht verzerrt sein. Das stimmt nicht. Eine andere Spalte, etwa der Wohnbezirk, verrät die Gruppe oft mit. Solche Spalten heißen Stellvertretermerkmale. Prüfen Sie die Entscheidungen immer nach Gruppen, auch wenn die Spalte fehlt.
Weiterführend: Wochentage in hires.csv zählen
Zählen Sie in einem Notebook, wie viele Zeilen von hires.csv auf jeden Wochentag fallen. Vergleichen Sie mit dem, was Sie erwarten.
Ein Jahr hat 52 Wochen und einen Tag übrig. Ist es eine Verzerrung, wenn ein Wochentag einmal mehr vorkommt? Begründen Sie in zwei Sätzen.