Menu
CoddyTech

Varianza e deviazione standard

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

.std() è la distanza tipica dalla media. Qui viene calcolata a mano, per cinque espresso:

Cinque espresso rappresentati come punti attorno a una linea arancione della media a 26 secondi. Un segmento grigio unisce ogni punto alla linea, con la rispettiva deviazione: -2, +1, -1, +4 e -2

Ogni scarto dalla media è una deviazione. Si annullano a 0, quindi elevatele al quadrato e poi fate la media: la varianza.

shots = np.array([24, 27, 25, 30, 24])
deviations = shots - shots.mean()
variance = (deviations ** 2).mean()
print(deviations)
print(variance, np.round(np.sqrt(variance), 2))

Questo stampa:

[-2.  1. -1.  4. -2.]
5.2 2.28

La sua radice quadrata, la deviazione standard, riconverte i secondi quadrati in secondi: 2.28. np.var(a) e np.std(a) fanno ciascuno questo in una sola chiamata.

Una caratteristica con una deviazione standard pari a 0 non cambia mai, quindi non fornisce alcuna informazione a un modello.

challenge icon

Sfida

Facile

Il controllo qualità verifica quanto uniformemente una macchina riempie le bottiglie di succo. Il codice iniziale legge sei volumi in ml e stampa ciò che restituisce spread_by_hand(a), accanto a np.std. Completa quella funzione in modo che restituisca:

  1. la varianza: la media degli scarti quadratici rispetto alla media di a,
  2. la deviazione standard, la sua radice quadrata.

Per i volumi 1004, 996, 1011, 993, 1002 e 998:

Variance: 34.56 ml squared
Std: 5.88 ml
Same as np.std: True

Provalo tu

import numpy as np

values = []
for i in range(6):
    values.append(int(input()))
volumes = np.array(values)


# Restituisce la varianza e la deviazione standard dell'array a
def spread_by_hand(a):
    # Scrivi qui il tuo codice, poi restituisci i due valori al posto di 0, 0
    return 0, 0


# Non modificare le righe seguenti
variance, std = spread_by_hand(volumes)
print(f"Variance: {np.round(variance, 2)} ml squared")
print(f"Std: {np.round(std, 2)} ml")
print("Same as np.std:", np.round(std, 2) == np.round(np.std(volumes), 2))
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