Fairness lässt sich zählen
Fairness messen heißt, die Entscheidungen eines Modells für jede Gruppe getrennt zu zählen und die Raten zu vergleichen. Erst dann sieht man, ob eine Gruppe öfter abgelehnt wird als eine andere.
Ein Modell sortiert Kreditanträge vor. Gruppe A bekommt öfter ein Ja als Gruppe B. Ist das unfair? Die Frage hat mehr als eine Antwort, und diese Lektion zeigt zwei davon.
Am Ende dieser Lektion
Notiz
Ich kann messen, ob ein Modell zwei Gruppen gleich behandelt.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Gruppe | Menschen mit einem gemeinsamen Merkmal | A und B |
| Positive Entscheidung | die Entscheidung, die etwas gewährt | genehmigt |
| Auswahlrate | der Anteil einer Gruppe mit positiver Entscheidung | |
| Trefferquote | der Anteil der wirklich Geeigneten, die das Modell erkennt | |
| Fairnessmaß | eine Zahl, die zwei Gruppen vergleicht |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Die Auswahlrate zählt die Ja-Entscheidungen je Gruppe
Die Auswahlrate einer Gruppe ist der Anteil ihrer Zeilen mit einer positiven Entscheidung, hier einer Genehmigung. Sie rechnen: Genehmigte der Gruppe geteilt durch alle Anträge der Gruppe.
Sind die Raten verschieden, behandelt das Modell die Gruppen nicht gleich. Ein Unterschied ist noch kein Beweis für Unrecht, aber ein Grund, genauer hinzusehen.
Beispiel: Auswahlrate zweier Gruppen
| Gruppe | Anträge | Genehmigt | Auswahlrate |
|---|---|---|---|
| A | 100 | 60 | 0,60 |
| B | 100 | 40 | 0,40 |
| Unterschied | 0,20 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Die Auswahlrate von Hand berechnen
# Jede Zeile: Gruppe, wirklich zahlungsfähig (1 oder 0), genehmigt (1 oder 0)
antraege = [["A", 1, 1], ["A", 1, 1], ["A", 0, 1], ["A", 0, 0],
["B", 1, 1], ["B", 1, 0], ["B", 0, 1], ["B", 0, 0]]
for gruppe in ["A", "B"]:
anzahl = 0
genehmigt = 0
for zeile in antraege:
if zeile[0] == gruppe:
anzahl = anzahl + 1
genehmigt = genehmigt + zeile[2]
print(gruppe, "Auswahlrate:", genehmigt / anzahl)
# Setzen Sie bei der zweiten Zeile von B die Entscheidung auf 1. Wie ändert sich die Rate von B?
Die Trefferquote fragt nach den Geeigneten
Die Trefferquote fragt: Wie viele der Personen, die wirklich zahlungsfähig sind, bekommen ein Ja? Sie ist der Anteil der Geeigneten, die das Modell erkennt.
Ein zweites Modell hat für beide Gruppen dieselbe Auswahlrate von 0,60. Trotzdem bekommen in Gruppe A neun von zehn Geeigneten ein Ja und in Gruppe B nur drei von vier.
Beispiel: gleiche Auswahlrate, andere Trefferquote
| Gruppe | Anträge | Zahlungsfähig | Genehmigt | Davon zahlungsfähig | Auswahlrate | Trefferquote |
|---|---|---|---|---|---|---|
| A | 100 | 50 | 60 | 45 | 0,60 | 0,90 |
| B | 100 | 40 | 60 | 30 | 0,60 | 0,75 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Auch eine einfache Regel hat Raten
Eine Regel ist ein winziges Modell. Die Regel „zweite Aushilfe rufen ab 15 Grad“ soll volle Tage erkennen, also Tage ab 300 Ausleihen.
Der Befehl unten rechnet für jede Wetterart die Auswahlrate und die Trefferquote. Die Wetterarten sind hier die Gruppen. Es geht um Tage, nicht um Menschen, aber das Zählen ist dasselbe.
Raten je Wetterart berechnen
docker exec jupyter python3 -c "import csv; z = list(csv.DictReader(open('hires.csv'))); [print(w, 'Auswahlrate', round(sum(1 for x in z if x['weather'] == w and float(x['temp_c']) >= 15) / sum(1 for x in z if x['weather'] == w), 2), 'Trefferquote', round(sum(1 for x in z if x['weather'] == w and int(x['hires']) >= 300 and float(x['temp_c']) >= 15) / sum(1 for x in z if x['weather'] == w and int(x['hires']) >= 300), 2)) for w in ['sunny', 'cloudy', 'rainy']]"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Zwei Definitionen von fair können sich widersprechen
Gleiche Auswahlrate und gleiche Trefferquote sind zwei Ziele, und beide klingen fair. Unterscheiden sich die Gruppen in der Wirklichkeit, etwa im Anteil der Zahlungsfähigen, lassen sie sich bei einem unvollkommenen Modell nicht zugleich erreichen.
Fairness ist deshalb keine Zahl, die man abliest. Menschen müssen entscheiden, welcher Fehler schwerer wiegt, und es aufschreiben.
Ein häufiger Fehler
Warnung
Viele denken, ein Modell sei fair, wenn seine Genauigkeit insgesamt hoch ist. Die große Gruppe bestimmt das Ergebnis, und ein Unterschied zur kleinen Gruppe geht darin unter. Messen Sie deshalb immer getrennt je Gruppe.
Weiterführend: Raten nach Wochentag
Wiederholen Sie die Rechnung im Notebook mit den Gruppen „Wochenende“ und „Werktag“ statt der Wetterarten. Verwenden Sie dieselbe Regel ab 15 Grad.
Schreiben Sie zwei Sätze: Welche Gruppe wird von der Regel öfter gewählt, und bei welcher werden die vollen Tage besser erkannt?