Menu
CoddyTech

Krzywa normalna

Część sekcji Statystyka w uczeniu maszynowym ścieżki Machine Learning w Coddy. Lekcja 9 z 64.

Wzrost, wyniki egzaminów, worki ryżu: wiele pomiarów tworzy rozkład normalny, czyli krzywą dzwonową. 500 worków z jednej maszyny:

Histogram gęstości masy 500 worków ryżu z nałożoną na niego pomarańczową krzywą dzwonową. Przerywana linia oznacza średnią wynoszącą 1000 g, znajdującą się w szczycie, a strzałka o długości 8 g oznacza odchylenie standardowe, czyli szerokość

Dwie liczby określają jego kształt: średnia wyznacza szczyt, a odchylenie standardowe — szerokość. SciPy, biblioteka naukowa, zna wzór:

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) to wysokość krzywej przy x, jednej wartości lub tablicy. Pole pod krzywą wynosi 1, podobnie jak w przypadku histogramu gęstości, więc oba można umieścić na jednym wykresie.

Niektóre modele preferują cechy o rozkładzie zbliżonym do normalnego. Ten wykres to sprawdza.

challenge icon

Wyzwanie

Łatwy

Śruby powinny mieć długość 50 mm. Kod początkowy przechowuje 240 zmierzonych długości w lengths i przygotowuje wykres. Porównaj je z krzywą normalną:

  1. Wypisz ich średnią i odchylenie standardowe (np.std), zaokrąglone do 2 miejsc po przecinku, jak poniżej.
  2. Narysuj histogram gęstości z bins=15.
  3. Narysuj dopasowaną krzywą na histogramie: 100 punktów od najkrótszej do najdłuższej śruby.
  4. Wyświetl wykres.

Dla innej partii:

Fitted curve: mean 49.99 mm, std 0.42 mm

i wykres:

A density histogram of 180 bolt lengths from about 49 to 51 mm, with a smooth bell curve over it peaking near 50

Spróbuj swoich sił

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

# Nie zmieniaj poniższych wierszy
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")

# Napisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Statystyka w uczeniu maszynowym

Poćwicz samodzielnie: Kompilator Python online