Menu
CoddyTech

Hukum Bilangan Besar

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

Melempar koin 10 kali dan mendapatkan 8 sisi kepala bukanlah hal yang mengejutkan. Terus lempar koin, dan proporsi sisi kepala perlahan mendekati 0.5:

Grafik garis proporsi sisi kepala selama 300 kali lemparan: proporsinya naik turun antara 0.3 dan 1 pada lemparan-lemparan awal, lalu mendekati garis merah putus-putus pada probabilitas 0.5

Setiap titik membutuhkan proporsi sejauh ini. np.cumsum memberikan total kumulatif; bagi dengan jumlah lemparan sejauh ini:

heads = np.array([True, False, True, True])
print(np.cumsum(heads))
print(np.round(np.cumsum(heads) / np.arange(1, 5), 2))

Ini mencetak:

[1 1 2 3]
[1.   0.5  0.67 0.75]

ax.axhline(y) menggambar garis referensi secara horizontal melintasi grafik:

ax.plot(np.arange(1, 301), share)
ax.axhline(0.5, color="red", linestyle="--")

Itulah hukum bilangan besar: semakin banyak percobaan, semakin dekat hasilnya dengan probabilitas. Model yang mendapat skor bagus pada 20 sampel mungkin hanya beruntung, tetapi pada 2000 sampel, kecil kemungkinan itu terjadi.

challenge icon

Tantangan

Sedang

Sebuah merek sereal menyembunyikan mainan di 20% kotak. Program membaca jumlah kotak yang dibuka; kode awal mengisi toys (True jika ada mainan) dan memberi label pada grafik.

  1. Hitung proporsi kumulatif kotak yang berisi mainan.
  2. Cetak nilainya setelah 10 kotak dan setelah semua kotak dibuka, dengan 3 angka desimal.
  3. Buat grafik nilai tersebut terhadap nomor kotak mulai dari 1, tambahkan garis putus-putus hitam (":") pada 0.2, lalu tampilkan grafiknya.

Untuk 80 kotak lainnya:

After 10 boxes: 0.1
After 80 boxes: 0.212

dan gambar grafik berikut. Lalu Coddy menjelaskan grafik buatanmu.

Grafik berjudul Toys in Cereal Boxes: proporsi kumulatif selama 80 kotak berada di 0 untuk 8 kotak, naik turun, lalu menetap di dekat garis putus-putus hitam pada 0.2

Coba sendiri

import numpy as np
import matplotlib.pyplot as plt

boxes = int(input())

# Jangan ubah baris-baris di bawah ini
rng = np.random.default_rng(25)
toys = rng.random(boxes) < 0.2

fig, ax = plt.subplots()
ax.set_title("Toys in Cereal Boxes")
ax.set_xlabel("Boxes opened")
ax.set_ylabel("Share with a toy")

# 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