Menu
CoddyTech

Campioni più grandi, meno rumore

Fa parte della sezione Statistica per il machine learning del percorso Machine Learning di Coddy. Lezione 22 di 64.

Campioni più grandi forniscono stime migliori, ma quanto migliori? Ecco 1000 medie di 25 cestini della spesa e 1000 medie di 100 cestini:

Due curve a campana delle medie campionarie degli articoli per cestino, entrambe centrate vicino a 30. Le medie di 25 cestini, in grigio, vanno da circa 20 a 40; le medie di 100 cestini, in blu, formano una campana larga la metà

sample_means misura ogni dispersione. L’errore standard, std / np.sqrt(n), la prevede senza simulazione:

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))

Viene stampato:

25 3.43 3.45
100 1.72 1.72

Quattro volte i dati, la metà del rumore: ecco la radice quadrata in azione. Un modello testato su 400 esempi ha un punteggio due volte più preciso rispetto a uno testato su 100.

challenge icon

Sfida

Medio

bags contiene i pesi, in grammi, dei 5000 sacchi di farina di un mulino. Il controllo qualità pesa un campione ogni ora; il programma legge l’errore standard che accetta.

  1. Trova il valore più piccolo di n per cui l’errore standard, bags.std() / np.sqrt(n), è al massimo pari a quel valore: parti da 1, aggiungi 1 finché è troppo grande.
  2. Verificalo: la deviazione standard di 300 medie campionarie ottenute da sample_means.
  3. Stampa come sotto, con 2 decimali.

Per un altro mulino e 2.5:

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

Provalo tu

import numpy as np

target = float(input())

# Non modificare le righe seguenti: il peso in grammi di ogni sacchetto di farina
rng = np.random.default_rng(22)
bags = np.round(rng.normal(500, 8, size=5000), 1)


# La tua funzione di Sample Means Vary: le medie di count campioni
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)


# Scrivi il tuo codice qui sotto
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Statistica per il machine learning

Esercitati da solo: Compilatore Python online