Menu
CoddyTech

Dichtehistogramme

Teil des Abschnitts Statistik für ML der Machine Learning-Journey von Coddy. Lektion 7 von 64.

In diesem Kapitel geht es um die Form von Daten. Am Ende wirst du eine Glockenkurve an ein Histogramm anpassen und den Ausreißer erkennen:

Ein Histogramm mit 300 Melonengewichten, darüber eine glatte orangefarbene Glockenkurve und unter der leichtesten Melone ein roter Punkt

Zunächst eine Korrektur. Bei Anzahlwerten kann eine große Gruppe eine kleine in den Schatten stellen, etwa die Reaktionszeiten von 500 Erwachsenen im Vergleich zu denen von 50 Gamern:

Zwei Diagramme mit denselben Reaktionszeiten. Links, Anzahlwerte: 500 Erwachsene überragen 50 Gamer, deren Balken kaum zu sehen sind. Rechts, density=True: Beide Gruppen sind vollständig zu sehen, die Gamer reagieren schneller und ihre Werte liegen dichter beieinander

density=True skaliert jede Gruppe so, dass sich die Flächen ihrer Balken zu 1 summieren:

ax.hist(adults, bins=16, density=True, alpha=0.5, label="adults")
ax.hist(gamers, bins=16, density=True, alpha=0.5, label="gamers")

Jede Höhe ist count / (n * bin width), daher entspricht die Fläche eines Balkens seinem Anteil an der Gruppe. Gruppen beliebiger Größe lassen sich nun fair vergleichen.

challenge icon

Aufgabe

Einfach

Ein städtisches Krankenhaus wog 400 Neugeborene, ein ländliches 60. Das Startgerüst enthält die Gewichte in city und rural und richtet das Diagramm mit Titel und Beschriftungen ein.

  1. Zeichne für jede Gruppe ein Dichtehistogramm mit bins=10, alpha=0.5 und der Beschriftung city oder rural.
  2. Füge eine Legende hinzu und zeige das Diagramm an.

Coddy beschreibt dein Diagramm. Es sollte wie dieses hier von zwei Tomatenanbauern aussehen:

Zwei durchsichtige Dichtehistogramme mit dem Titel Tomato Weights: Tomaten vom Bauernhof von etwa 90 bis 200 Gramm, Gartentomaten leichter, meist 95 bis 145, mit einer Legende

Probier es selbst

import numpy as np
import matplotlib.pyplot as plt

# Ändere die folgenden Zeilen nicht
rng = np.random.default_rng(23)
city = np.round(rng.normal(3.4, 0.5, size=400), 2)
rural = np.round(rng.normal(3.2, 0.45, size=60), 2)

fig, ax = plt.subplots()
ax.set_title("Birth Weights")
ax.set_xlabel("Weight (kg)")
ax.set_ylabel("Density")

# Schreibe deinen Code darunter
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Statistik für ML

Übe selbstständig: Online-Python-Compiler