Menu
CoddyTech

Potrebbe essere solo caso?

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

Cinque lettori con un font sans battono di 6,6 secondi cinque lettori con un font serif. Se il font non cambiasse nulla, qualsiasi tempo potrebbe trovarsi in uno dei due gruppi. Mescola per rappresentare questa situazione:

Dieci tempi di lettura rappresentati come celle, cinque in serif in blu e cinque in sans in arancione. Una freccia etichettata rng.permutation(pooled) porta agli stessi dieci valori in un ordine misto, suddivisi in un falso gruppo serif con media 48.4 e un falso gruppo sans con media 49.8: una differenza di +1.4 secondi dovuta al caso

rng.permutation(a) restituisce una copia mescolata. Ripeti l’operazione 1000 volte e conserva ogni falsa differenza:

serif = np.array([52, 47, 58, 50, 55])
sans = np.array([45, 49, 41, 50, 44])
pooled = np.concatenate([serif, sans])
rng = np.random.default_rng(4)
diffs = []
for i in range(1000):
    shuffled = rng.permutation(pooled)
    diffs.append(shuffled[5:].mean() - shuffled[:5].mean())

Un istogramma delle 1000 differenze mescolate, da -7.8 a 7.8 secondi e concentrate intorno a 0, con una linea rossa per la differenza reale, -6.6, vicino al bordo sinistro

Le differenze casuali si accumulano intorno a 0; quella reale si trova vicino al margine. Questo è un test di permutazione.

Prima di fidarti del fatto che un modello sia migliore di un altro, verifica che mescolare raramente produca una differenza così grande.

challenge icon

Sfida

Medio

I cani hanno imparato a sedersi in due modi: clicker e treats contengono le sessioni di ciascun cane. Il codice iniziale crea rng e shuffles.

  1. Calcola la differenza reale: media di treats meno media di clicker.
  2. Unisci clicker e poi treats; mescola shuffles volte, dividi in corrispondenza di len(clicker), mantieni ogni differenza fittizia nello stesso ordine; non effettuare altre estrazioni.
  3. Stampa la differenza reale, la prima differenza fittizia, la più piccola e la più grande, con 2 decimali.

Per altri cani:

Real difference: 3.0
First shuffle: -1.0
Smallest shuffled: -3.33
Largest shuffled: 3.67

Provalo tu

import numpy as np

# Sessioni di addestramento necessarie a ciascun cane per imparare "sit"
clicker = np.array([9, 12, 8, 11, 10, 7, 13])
treats = np.array([14, 11, 15, 12, 16, 13])
# Non modificare le righe qui sotto
rng = np.random.default_rng(12)
shuffles = 1000

# 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