Menu
CoddyTech

Sampel Lebih Besar, Lebih Sedikit Gangguan

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

Sampel yang lebih besar memberikan estimasi yang lebih baik, tetapi seberapa jauh lebih baik? Berikut 1000 rata-rata dari 25 keranjang belanja, dan 1000 rata-rata dari 100 keranjang:

Dua kurva lonceng rata-rata sampel jumlah barang per keranjang, keduanya berpusat di sekitar 30. Rata-rata dari 25 keranjang berwarna abu-abu menyebar dari sekitar 20 hingga 40; rata-rata dari 100 keranjang berwarna biru membentuk kurva lonceng yang lebarnya setengah

sample_means mengukur setiap penyebaran. standard error, std / np.sqrt(n), memprediksinya tanpa simulasi:

for n in [25, 100]:
    spread = sample_means(baskets, n, 1000).std()
    print(n, np.round(spread, 2), np.round(baskets.std() / np.sqrt(n), 2))

Ini mencetak:

25 3.43 3.45
100 1.72 1.72

Data empat kali lebih banyak, gangguan setengahnya: itulah cara kerja akar kuadrat. Model yang diuji pada 400 contoh memiliki skor dua kali lebih presisi dibandingkan saat diuji pada 100 contoh.

challenge icon

Tantangan

Sedang

bags menyimpan berat 5000 kantong tepung dari sebuah pabrik, dalam gram. Bagian pengendalian kualitas menimbang sampel setiap jam; program membaca galat baku yang diterimanya.

  1. Temukan n terkecil yang galat bakunya, bags.std() / np.sqrt(n), paling besar sebesar batas tersebut: mulai dari 1, lalu tambahkan 1 selama nilainya terlalu besar.
  2. Periksa hasilnya: simpangan baku dari 300 rata-rata sampel yang dihasilkan oleh sample_means.
  3. Cetak seperti di bawah ini, dengan 2 angka desimal.

Untuk pabrik lain dan 2.5:

Bags to weigh: 24
Standard error: 2.46 g
Simulated spread: 2.37 g

Coba sendiri

import numpy as np

target = float(input())

# Jangan ubah baris-baris di bawah ini: berat setiap kantong tepung dalam gram
rng = np.random.default_rng(22)
bags = np.round(rng.normal(500, 8, size=5000), 1)


# Fungsimu dari Sample Means Vary: rata-rata dari count sampel
def sample_means(data, size, count):
    means = []
    for i in range(count):
        sample = rng.choice(data, size=size, replace=False)
        means.append(sample.mean())
    return np.array(means)


# 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