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

Woher Verzerrung in Daten kommt

Nach dieser Lektion: Ich kann an einem Datensatz zeigen, an welcher Stelle Verzerrung hineingelangt ist.

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

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

BegriffWas er bedeutetBeispiel
Verzerrung (Bias)eine Schieflage in Daten oder Entscheidungen
Stichprobedie Fälle, die ein Datensatz tatsächlich enthält
Grundgesamtheitalle Fälle, über die man etwas sagen will
Anteilder Teil einer Gruppe an allen Zeilen25 %
Etikettdie Antwort, die ein Modell lernen sollgenehmigt
Stellvertretermerkmaleine 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

GruppeAntwortenAnteil in der UmfrageAnteil der Familien
A18090 %60 %
B2010 %40 %
Summe200100 %100 %

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

Anteile selbst ausrechnen

Code: python
# 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

Befehl
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

GruppeAnträgeGenehmigtGenehmigungsquote
A1006060 %
B1003030 %

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.

Ü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.