📊 Statistik & Wahrscheinlichkeit

Histogramme

Wie aus vielen einzelnen Messwerten ein Bild ihrer Verteilung wird.

Ein Histogramm beantwortet eine einfache Frage: Wie verteilen sich meine Messwerte? Wo liegen die meisten, wie weit streuen sie, gibt es Ausreißer? Statt jeden Wert einzeln zu betrachten, zählt es, wie viele Werte in bestimmte Bereiche fallen. Die folgenden vier Grafiken bauen ein Histogramm Schritt für Schritt auf.

1. Das Problem: Messpunkte überdecken sich

Angenommen, wir haben viele Messungen derselben Größe, etwa die Körpergröße von Personen. Jeder Messwert wird als Punkt auf einer Achse von „kleiner“ nach „größer“ eingetragen:

KleinerGrößer

In der Mitte liegen die Punkte so dicht, dass sie sich gegenseitig verdecken. Man ahnt zwar, dass dort viele Werte liegen, kann aber nicht ablesen, wie viele. Genau diese Information, die Häufigkeit, ist aber das, was uns interessiert.

2. Erster Versuch: Gleiche Werte stapeln

Naheliegende Idee: Werte, die exakt gleich sind, legen wir übereinander statt nebeneinander.

KleinerGrößer

Das hilft ein wenig, aber nur, wenn Werte exakt übereinstimmen. Bei kontinuierlichen Messgrößen wie Gewicht, Zeit oder Temperatur passiert das praktisch nie: 1,7312 m und 1,7318 m sind verschiedene Werte. Die Stapel bleiben fast überall nur einen Punkt hoch, und das Bild ist kaum aussagekräftiger als vorher.

3. Der Trick: Den Wertebereich in Bins teilen

Statt auf exakt gleiche Werte zu warten, teilen wir die Achse in gleich breite Intervalle, die sogenannten Bins (Behälter, Klassen). Jeder Messwert fällt in genau einen Bin.

KleinerGrößer

Damit die Zuordnung eindeutig ist, braucht es eine Regel für Werte, die genau auf einer Grenze liegen. Üblich sind halboffene Intervalle [a,b)[a, b): Die linke Grenze gehört zum Bin, die rechte schon zum nächsten.

Der entscheidende Gedanke: Wir geben bewusst Genauigkeit auf. Ob ein Wert am linken oder rechten Rand seines Bins liegt, spielt ab jetzt keine Rolle mehr. Im Gegenzug können wir zählen.

4. Das Histogramm

Nun stapeln wir alle Punkte, die in denselben Bin fallen. Die Höhe jeder Säule ist die Anzahl der Messwerte in diesem Bin, also ihre absolute Häufigkeit nkn_k.

KleinerGrößer

Auf einen Blick lässt sich jetzt ablesen, was in der ersten Grafik verborgen war:

Lage

Wo ist das Zentrum?

Die höchsten Säulen zeigen, wo sich die Werte häufen, hier etwas links der Mitte.

Streuung

Wie breit ist die Verteilung?

Je breiter der „Hügel“, desto stärker streuen die Messwerte um das Zentrum.

Form

Symmetrisch oder schief?

Hier ergibt sich grob eine Glockenform. Andere Daten sind schief (ein langer Ausläufer zu einer Seite) oder haben mehrere Gipfel, ein Hinweis auf gemischte Gruppen.

Ausreißer

Gibt es Einzelgänger?

Der einzelne Punkt ganz rechts, getrennt durch einen leeren Bin, ist ein Kandidat für einen Ausreißer oder Messfehler.

Die Bin-Breite entscheidet

Dieselben Daten können je nach Bin-Breite sehr unterschiedlich aussehen. Es gibt keine einzig richtige Wahl, wohl aber zwei Fehler in entgegengesetzte Richtungen:

Zu schmal

Rauschen statt Struktur

Fast jeder Bin enthält null oder einen Wert. Wir sind zurück bei Grafik 2: Das Bild zeigt Zufall, nicht die Verteilung.

Zu breit

Struktur geht verloren

Wenige breite Säulen fassen alles zusammen. Zwei Gipfel oder eine Schiefe verschwinden in einem einzigen Block.

Als Startpunkt dienen Faustregeln. Die Sturges-Regel legt die Anzahl kk der Bins anhand der Datenmenge nn fest; die Freedman-Diaconis-Regel bestimmt die Bin-Breite hh aus dem Interquartilsabstand (IQR) und ist robuster gegenüber Ausreißern:

k≈1+log⁡2nh=2⋅IQRn3k \approx 1 + \log_2 n \qquad\qquad h = 2 \cdot \frac{\mathrm{IQR}}{\sqrt[3]{n}}

Bibliotheken wie NumPy und Matplotlib bieten solche Regeln direkt an (z. B. bins="auto"). In der Praxis lohnt es sich trotzdem, ein paar Bin-Breiten auszuprobieren und zu prüfen, welche Strukturen stabil bleiben.

Vom Histogramm zur Wahrscheinlichkeit

Die absolute Höhe nkn_k hängt davon ab, wie viele Werte wir insgesamt gemessen haben. Teilt man durch die Gesamtzahl nn, erhält man die relative Häufigkeit nk/nn_k / n: den Anteil der Werte im Bin, eine Schätzung der Wahrscheinlichkeit, dass ein neuer Messwert dort landet.

Teilt man zusätzlich durch die Bin-Breite hh, wird aus dem Histogramm ein Dichte-Histogramm:

Höhe eines Dichte-Histogramms

f^k=nkn⋅h\hat{f}_k = \frac{n_k}{n \cdot h}
Die Flächen aller Säulen summieren sich dann zu 1.

Damit ist das Histogramm direkt mit der Wahrscheinlichkeitsdichte (PDF) einer stetigen Zufallsvariable vergleichbar (siehe Zufallsvariablen & Streuung). Je mehr Daten man hat und je schmaler man die Bins dabei wählen kann, desto genauer nähert sich der Umriss des Histogramms der zugrunde liegenden Dichtekurve an. Das Histogramm ist also die einfachste Methode, eine unbekannte Verteilung aus Daten zu schätzen.

Wozu im Machine Learning?

Histogramme gehören zu den ersten Werkzeugen, zu denen man bei einem neuen Datensatz greift, und tauchen auch in Algorithmen selbst auf:

Daten verstehen

Ein Histogramm pro Feature zeigt Schiefe, Ausreißer und unplausible Werte (z. B. negative Preise oder Platzhalter wie 999). Stark rechtsschiefe Größen wie Einkommen werden oft logarithmiert, bevor ein Modell sie verarbeitet.

Verteilungen vergleichen

Liegen die Histogramme von Trainings- und Testdaten übereinander? Verschiebt sich die Verteilung eines Features im laufenden Betrieb (Data Drift), arbeitet das Modell auf Daten, die es so nie gesehen hat.

Fehler analysieren

Das Histogramm der Residuen (Vorhersage minus Wahrheit) zeigt, ob die Fehler symmetrisch um null liegen oder ob das Modell systematisch daneben liegt.

Schnellere Algorithmen

Histogrammbasiertes Gradient Boosting (LightGBM, HistGradientBoostingClassifier in scikit-learn) sortiert jedes Feature vorab in Bins. Bei der Suche nach dem besten Split müssen dann nur noch wenige Bin-Grenzen statt aller Einzelwerte geprüft werden.