ML Atlas

Machine Learning von Grund auf · Lektion 4.1 · 20 von 33 fertigen Lektionen · 12 Min.

Exploration: erst schauen, dann modellieren

Kurz gesagt

Vier Datensätze mit gleichem Mittelwert, Korrelation 0,82 und Gerade sehen völlig verschieden aus. Zeichne die Daten, bevor du Zahlen und Modellen traust.

Aufwärmen Zwei Fragen aus früheren Lektionen. Eine Minute, und sie blockiert die Lektion nicht.
Aus Lektion 3.6: Frühes Stoppen Woran entscheidet frühes Stoppen, wann das Training abbricht?

Antwort anzeigen

Richtige Antwort: Am Validierungsverlust: Es stoppt, wenn er nicht mehr sinkt

Der Trainingsverlust sinkt fast bis zum Ende, selbst wenn das Netz Rauschen lernt. Der Validierungsverlust, berechnet auf Daten außerhalb des Trainings, steigt, wenn das Modell anfängt, sich zu überanpassen.

Aus Lektion 3.5: Hyperparameter abstimmen, ohne zu schummeln Der Sieger des Abstimmens erreicht 93,7 % in der Kreuzvalidierung. Was ist auf neuen Daten zu erwarten?

Antwort anzeigen

Richtige Antwort: Eher weniger, weil die Wahl des besten von vielen Ergebnissen auch das Glück wählt

Das ist der Fluch des Siegers. Im Lab erreicht der Sieger von 9 Einstellungen im Test 88,3 %; bei 200 Ziehungen ist sein Validierungsergebnis jedes Mal höher als sein Testergebnis.

Modul 4 beginnt vor dem Modell. Bevor du irgendetwas trainierst, schau dir die Daten an. Explorative Datenanalyse (EDA, vom englischen exploratory data analysis) heißt: die Daten zeichnen und einfache Zusammenfassungen berechnen, um zu sehen, womit du es zu tun hast: Form, Gruppen, Punkte weit weg vom Rest. Ein Mittelwert oder eine Korrelation ist eine Zusammenfassung, und eine Zusammenfassung kann genau das Wichtige verstecken. Heute zwei Beispiele: Anscombes vier kleine Datensätze und die Pinguine aus Lektion 0.1.

Erst vorhersagen, dann prüfen Vier Datensätze mit je 11 Punkten haben denselben Mittelwert von x und von y, dieselbe Korrelation 0,82 und dieselbe angepasste Gerade y = 3 + 0,5·x. Wie sehen sie im Diagramm aus?
Wie sicher bist du?

Interaktives Labor

Dieses interaktive Labor läuft im Browser mit aktiviertem JavaScript. Der Text drumherum beschreibt, was es zeigt.

Antwort anzeigen

Richtige Antwort: Völlig verschieden: eine Wolke, ein Bogen, ein Ausreißer und ein ferner Punkt

Völlig verschieden. Datensatz I ist eine Wolke um die Gerade. Datensatz II liegt auf einem Bogen: Eine Parabel erklärt R² = 1,000 der Streuung von y, die Gerade nur 0,666. In Datensatz III liegen zehn Punkte fast genau auf einer anderen, flacheren Geraden (Steigung 0,345), und ein Ausreißer zieht die angepasste Gerade zu sich, bis zur Steigung 0,5. In Datensatz IV haben zehn Punkte dasselbe x = 8, und ein einziger Punkt bei (19; 12,50) legt die Gerade fest.

Probier es aus

  • Klicke dich durch die Datensätze I–IV. Welche Zahlen unter den Diagrammen ändern sich, welche bleiben gleich?
  • In welchem Datensatz legt ein einziger Punkt die Gerade fest? Was würde ohne ihn mit der Geraden passieren?
  • Wechsle zu den Pinguinen und wähle Schnabellänge × Schnabelhöhe. Welches Vorzeichen hat die Korrelation? Teile die Pinguine dann nach Art auf.
  • Prüfe dasselbe Paar aufgeteilt nach Insel. Warum ist das Bild anders als bei den Arten?

Wenn du es im Lab geprüft hast, geben wir dem, was du siehst, einen Namen.

Die Idee in einfachen Worten

Kennzahlen, also Mittelwert, Varianz, Korrelation und Regressionsgerade, fassen Daten in wenigen Zahlen zusammen. Eine Zusammenfassung verliert immer etwas. Francis Anscombe baute 1973 vier Datensätze mit je 11 Punkten, in denen diese Zahlen fast identisch sind: Mittelwert von x 9, von y 7,50, Varianz von x 11, von y 4,12–4,13, Korrelation 0,816, Gerade y = 3,00 + 0,500·x. Im Diagramm ist Datensatz I eine Wolke, II ein Bogen, III eine Gerade mit einem Ausreißer, IV eine senkrechte Säule mit einem fernen Punkt. Eine lineare Regression liefert für jeden dieselbe Gerade, obwohl sie nur den ersten sinnvoll beschreibt.

Die Pinguine zeigen dasselbe an echten Daten. Über alle 342 Pinguine beträgt die Korrelation von Schnabellänge und Schnabelhöhe −0,235: je länger der Schnabel, desto flacher. Nach Arten aufgeteilt kehrt sich das Vorzeichen um: Adelie 0,391, Chinstrap 0,654, Gentoo 0,643. Innerhalb jeder Art ist ein längerer Schnabel auch höher. Eine Zahl für den ganzen Datensatz beschreibt einen Zusammenhang, den es in keiner Gruppe gibt.

Jak to policzono
  • Quartett: Anscombe (1973), The American Statistician. 4 Datensätze mit je 11 Punkten, Kopie aus dem Repository seaborn-data. Varianz geteilt durch n − 1.
  • Pinguine: Palmer Penguins (Gorman, Williams und Fraser, 2014; Paket palmerpenguins: Horst, Hill und Gorman, 2020), Lizenz CC0. 342 Pinguine mit Schnabelmaßen, 3 Arten: Adelie 151, Chinstrap 68, Gentoo 123.
  • Korrelation r: Pearson-Koeffizient, von −1 bis 1; 0 heißt: kein linearer Zusammenhang.
  • Geraden: kleinste Quadrate, getrennt für jeden Datensatz und jede Gruppe.

Warum es funktioniert

Woher kommt das umgekehrte Vorzeichen bei den Pinguinen? Gentoo haben lange, aber flache Schnäbel: im Mittel 47,5 mm lang und 15,0 mm hoch. Adelie haben kurze, hohe Schnäbel: 38,8 und 18,3 mm. Eine einzige Korrelation für alle vergleicht vor allem die Arten miteinander: Gentoo liegen unten rechts im Diagramm, Adelie oben links, also fällt die Gerade durch alle Punkte. Innerhalb jeder Art ist der Zusammenhang positiv, weil ein größerer Pinguin in beide Richtungen einen größeren Schnabel hat. Das ist das Simpson-Paradox: Wenn sich Gruppen in ihren Mittelwerten unterscheiden, kann der Zusammenhang im Ganzen das umgekehrte Vorzeichen haben wie in jeder Gruppe.

Im Quartett ist der Mechanismus noch einfacher. Mittelwert, Varianz und Korrelation sind Summen über die Punkte, und verschiedene Anordnungen von Punkten ergeben dieselben Summen, so wie verschiedene Zahlenreihen denselben Mittelwert haben. Am stärksten ziehen Punkte weit weg vom Rest. In Datensatz IV legt der Punkt bei x = 19 allein die Steigung fest, denn die anderen 10 Punkte haben dasselbe x = 8 und sagen nichts über die Richtung.

Ist das Ergebnis bei den Pinguinen ein Zufall dieser einen Stichprobe? Im Code unten ziehen wir die Pinguine 1000-mal mit Zurücklegen neu: gleich viele Pinguine, manche doppelt, manche gar nicht. In 1000 von 1000 Ziehungen ist die Korrelation über alle negativ und in jeder Art positiv.

Häufiger Fehler

Richtig oder falsch: „Kennzahlen reichen; wenn zwei Datensätze denselben Mittelwert, dieselbe Varianz und Korrelation haben, sehen sie ähnlich aus“. Falsch. Im Lab haben Anscombes vier Datensätze diese Zahlen bis auf zwei Nachkommastellen gemeinsam und sehen völlig verschieden aus. Zahlen fassen zusammen: Sie zeigen weder die Form noch die Gruppen noch einzelne Punkte, die am Ergebnis ziehen. Bei den Pinguinen sagt eine Korrelation von −0,235 „längerer Schnabel, flacherer Schnabel“, und in jeder Art ist es umgekehrt.

Für ein Modell hat das konkrete Folgen. Eine lineare Regression auf Datensatz II sagt eine Gerade vorher, wo die Daten auf einem Bogen liegen. Ein Pinguin-Modell, das die Art nicht kennt, lernt einen negativen Zusammenhang, den es in keiner Art gibt. Deshalb zeichnest du zuerst die Daten und wählst erst dann Modell und Merkmale.

Quiz

Drei Fragen zur Selbstkontrolle. Wähle eine Antwort oder klappe die Lösung unter der Frage auf. Mit der Tastatur: Pfeiltasten wählen, Enter oder Leertaste bestätigt.

1. Was zeigt das Anscombe-Quartett?
Antwort anzeigen

Richtige Antwort: Dass dieselben Kennzahlen völlig verschiedene Anordnungen von Daten verbergen können

Vier Datensätze teilen Mittelwert, Varianz, Korrelation 0,816 und Gerade y = 3,00 + 0,500·x, und im Diagramm sind sie eine Wolke, ein Bogen, ein Ausreißer und ein Hebelpunkt. Zahlen ersetzen kein Bild.

2. Über alle Pinguine ist die Korrelation von Schnabellänge und Schnabelhöhe −0,235, in jeder Art aber positiv. Warum?
Antwort anzeigen

Richtige Antwort: Weil sich die Arten in ihren Mittelwerten unterscheiden und eine Zahl vor allem sie vergleicht

Gentoo haben lange, flache Schnäbel, Adelie kurze, hohe. Die Gerade durch alle Punkte verbindet die Arten und fällt, während der Zusammenhang in jeder Art positiv ist (0,391, 0,654, 0,643). Das ist das Simpson-Paradox.

3. Richtig oder falsch: „Kennzahlen reichen, Daten zu zeichnen ist Zeitverschwendung“.
Antwort anzeigen

Richtige Antwort: Falsch, weil dieselben Zahlen einen Bogen, Gruppen oder einen fernen Punkt verbergen

Im Quartett verbergen dieselben Zahlen vier verschiedene Bilder, und bei 342 Pinguinen hat eine Korrelation das umgekehrte Vorzeichen wie in jeder Art. Ein Bild zeigt das sofort.

Das Wichtigste

  • Bevor du ein Modell baust, zeichne die Daten: die Verteilung jedes Merkmals, Paare von Merkmalen und Gruppen.
  • Dieselben Mittelwerte, Varianzen und Korrelationen können eine Wolke, einen Bogen, einen Ausreißer oder einen Hebelpunkt verbergen.
  • Ein Zusammenhang in den ganzen Daten kann das umgekehrte Vorzeichen haben wie in jeder Gruppe (Simpson-Paradox); färbe Diagramme nach Gruppen.
  • Ein einziger ferner Punkt kann die Gerade allein festlegen: Prüfe, was sich ohne ihn ändert.

Tiefer: Formel, Code, Praxis

Die Mathematik

Pearson-Korrelation: r = Σ(xᵢ − x̄)(yᵢ − ȳ) / √(Σ(xᵢ − x̄)² · Σ(yᵢ − ȳ)²). Gerade der kleinsten Quadrate: b = r · s_y / s_x, a = ȳ − b · x̄. Die Gerade hängt also nur von den Mittelwerten, den Standardabweichungen und der Korrelation ab: Datensätze mit diesen gemeinsamen Zahlen haben dieselbe Gerade, wie auch immer sie aussehen.

Das Simpson-Paradox in einer Korrelation entsteht, wenn man die Kovarianz nach Gruppen zerlegt: cov(x, y) = Σ_g p_g · cov_g(x, y) + Σ_g p_g · (x̄_g − x̄)(ȳ_g − ȳ), wobei p_g der Anteil der Gruppe g ist. Der erste Term ist der Zusammenhang innerhalb der Gruppen, der zweite der Zusammenhang zwischen den Gruppenmittelwerten. Liegen die Gruppenmittelwerte auf einer fallenden Linie, ist der zweite Term negativ und kann den positiven ersten überwiegen.

Im Code (Python)

Dieselbe Rechnung in pandas: die Zahlen des Quartetts, die Schnabelkorrelation über alle Pinguine und innerhalb der Arten, und 1000 Ziehungen mit Zurücklegen, die prüfen, ob das umgekehrte Vorzeichen ein Zufall dieser Stichprobe ist.

import numpy as np
import pandas as pd

q = pd.read_csv("data/raw/anscombe.csv")
for name, d in q.groupby("dataset"):
    slope, intercept = np.polyfit(d.x, d.y, 1)
    print(f"set {name}: mean x {d.x.mean():.2f}, mean y {d.y.mean():.2f}, variance x {d.x.var():.2f}, variance y {d.y.var():.2f}, r {d.x.corr(d.y):.3f}, line y = {intercept:.2f} + {slope:.3f}x")
df = pd.read_csv("data/raw/penguins.csv").dropna(subset=["bill_length_mm", "bill_depth_mm"])
r = lambda d: d.bill_length_mm.corr(d.bill_depth_mm)
print(f"{len(df)} penguins, bill length vs bill depth: all r = {r(df):.3f}; " + ", ".join(f"{s} {r(g):.3f}" for s, g in df.groupby("species")))
rng = np.random.default_rng(0)
same = 0
for b in range(1000):
    s = df.sample(len(df), replace=True, random_state=rng)  # Ziehung mit Zurücklegen: gleich viele Pinguine, manche doppelt
    same += r(s) < 0 and all(r(g) > 0 for _, g in s.groupby("species"))
print(f"1000 bootstrap resamples: negative over all and positive in every species in {same}")

Ausgabe

set I: mean x 9.00, mean y 7.50, variance x 11.00, variance y 4.13, r 0.816, line y = 3.00 + 0.500x
set II: mean x 9.00, mean y 7.50, variance x 11.00, variance y 4.13, r 0.816, line y = 3.00 + 0.500x
set III: mean x 9.00, mean y 7.50, variance x 11.00, variance y 4.12, r 0.816, line y = 3.00 + 0.500x
set IV: mean x 9.00, mean y 7.50, variance x 11.00, variance y 4.12, r 0.817, line y = 3.00 + 0.500x
342 penguins, bill length vs bill depth: all r = -0.235; Adelie 0.391, Chinstrap 0.654, Gentoo 0.643
1000 bootstrap resamples: negative over all and positive in every species in 1000

Die vier Datensätze unterscheiden sich erst in der dritten Nachkommastelle. Bei den Pinguinen ist das umgekehrte Vorzeichen kein Zufall dieser Stichprobe: Es hält in 1000 von 1000 Ziehungen mit Zurücklegen.

Für die Praxis
  • In pandas: df.describe(), df.isna().sum() und df.groupby("species").mean(). In seaborn zeichnet pairplot(df, hue="species") alle Paare von Messungen in Gruppenfarben mit einem Aufruf.
  • Sieh dir die Verteilung jedes Merkmals (Histogramm), Paare von Merkmalen (Streudiagramm) und fehlende Werte an, bevor du irgendetwas aufteilst oder trainierst.
  • Mach die EDA, die Entscheidungen lenkt (Merkmale wählen, Schwellen, Zeilen entfernen), auf dem Trainingsteil. Für solche Entscheidungen auf die Testdaten zu schauen ist ein Datenleck (Lektion 4.5).
  • Schreib auf, was du gesehen hast: Gruppen, Ausreißer, seltsame Codes (z. B. 0 statt eines fehlenden Werts). Das ist eine Liste von Dingen, die du prüfst, wenn sich das Modell seltsam verhält.

Mehr im Atlas

Einträge der Enzyklopädie zu den Ideen dieser Lektion: