Menu
CoddyTech

Kurva Normal

Termasuk bagian Statistik untuk ML dalam perjalanan Machine Learning di Coddy. Pelajaran 9 dari 64.

Tinggi badan, nilai ujian, berat karung beras: banyak pengukuran menumpuk membentuk distribusi normal, kurva lonceng. 500 karung dari satu mesin:

Histogram kepadatan berat 500 karung beras dengan kurva lonceng oranye di atasnya. Garis putus-putus menandai rata-rata, 1000 g, di puncak, dan panah sepanjang 8 g menandai simpangan baku, yaitu lebarnya

Dua angka membentuknya: rata-rata menentukan puncak, simpangan baku menentukan lebarnya. SciPy, library untuk sains, mengetahui rumusnya:

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) adalah tinggi kurva pada x, satu nilai atau sebuah array. Luasnya 1, seperti histogram kepadatan, jadi keduanya bisa ditampilkan pada grafik yang sama.

Beberapa model lebih cocok dengan fitur yang distribusinya mendekati normal. Bagan ini memeriksanya.

challenge icon

Tantangan

Mudah

Panjang baut seharusnya 50 mm. Kode awal menyimpan 240 panjang yang diukur dalam lengths dan menyiapkan grafik. Bandingkan panjang-panjang itu dengan kurva normal:

  1. Cetak rata-rata dan std (np.std), dibulatkan menjadi 2 angka desimal, seperti di bawah ini.
  2. Gambar histogram kepadatan dengan bins=15.
  3. Gambar kurva hasil pencocokan di atasnya: 100 titik dari baut terpendek hingga terpanjang.
  4. Tampilkan grafik.

Untuk kelompok lainnya:

Fitted curve: mean 49.99 mm, std 0.42 mm

dan grafiknya:

Histogram kepadatan dari 180 panjang baut, berkisar antara sekitar 49 hingga 51 mm, dengan kurva lonceng halus di atasnya yang mencapai puncak di dekat 50

Coba sendiri

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

# Jangan ubah baris-baris di bawah ini
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")

# Tulis kodemu di bawah ini
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Statistik untuk ML

Latihan sendiri: Compiler Python online