Menu
CoddyTech

Die Normalverteilungskurve

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

Größen, Prüfungsergebnisse, Reissäcke: Viele Messwerte häufen sich gemäß einer Normalverteilung, der Glockenkurve. 500 Säcke aus einer Maschine:

Ein Dichtehistogramm der Gewichte von 500 Reissäcken mit einer orangefarbenen Glockenkurve darüber. Eine gestrichelte Linie markiert den Mittelwert von 1000 g am Gipfel, und ein 8 g langer Pfeil markiert die Standardabweichung, die Breite

Zwei Zahlen zeichnen sie: Der Mittelwert bestimmt den Gipfel, die Standardabweichung die Breite. SciPy, die wissenschaftliche Bibliothek, kennt die Formel:

from scipy import stats

ax.hist(bags, bins=16, density=True)
xs = np.linspace(bags.min(), bags.max(), 100)
ax.plot(xs, stats.norm.pdf(xs, bags.mean(), bags.std()))

stats.norm.pdf(x, mean, std) ist die Höhe der Kurve bei x, einem einzelnen Wert oder einem Array. Ihre Fläche beträgt 1, wie die eines Dichtehistogramms, sodass beide in einem Diagramm dargestellt werden können.

Einige Modelle bevorzugen Merkmale, die ungefähr normalverteilt sind. Dieses Diagramm überprüft das.

challenge icon

Aufgabe

Einfach

Die Bolzen sollten 50 mm lang sein. Das Startprogramm enthält 240 gemessene Längen in lengths und richtet das Diagramm ein. Vergleiche sie mit einer Normalverteilungskurve:

  1. Gib den Mittelwert und die Standardabweichung (np.std) auf 2 Dezimalstellen gerundet aus, wie unten gezeigt.
  2. Zeichne ein Dichtehistogramm mit bins=15.
  3. Zeichne die angepasste Kurve darüber: 100 Punkte von der kürzesten bis zur längsten Länge des Bolzens.
  4. Zeige das Diagramm an.

Für eine weitere Charge:

Fitted curve: mean 49.99 mm, std 0.42 mm

und das Diagramm:

Ein Dichtehistogramm mit 180 Bolzenlängen von etwa 49 bis 51 mm und einer glatten Glockenkurve darüber, deren Spitze nahe 50 liegt

Probier es selbst

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

# Ändere die folgenden Zeilen nicht
rng = np.random.default_rng(31)
lengths = np.round(rng.normal(50, 0.4, size=240), 2)

fig, ax = plt.subplots()
ax.set_title("Bolt Lengths")
ax.set_xlabel("Length (mm)")
ax.set_ylabel("Density")

# Schreibe deinen Code unten
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