Menu
CoddyTech

Variance et écart-type

Fait partie de la section Statistiques pour le ML du Journey Machine Learning de Coddy. Leçon 3 sur 64.

.std() est la distance typique par rapport à la moyenne. Ici, elle est calculée à la main pour cinq expressos :

Cinq expressos représentés par des points autour d’une ligne orange indiquant la moyenne à 26 secondes. Une tige grise relie chaque point à la ligne et indique son écart : -2, +1, -1, +4 et -2

Chaque écart par rapport à la moyenne est une déviation. Ils s’annulent pour donner 0, alors mettez-les au carré, puis calculez leur moyenne : la variance.

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

Cela affiche :

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

Sa racine carrée, l’écart type, ramène les secondes au carré aux secondes : 2.28. np.var(a) et np.std(a) font chacune cela en un seul appel.

Une caractéristique dont l’écart-type est de 0 ne change jamais ; elle n’apporte donc aucune information à un modèle.

challenge icon

Défi

Facile

Le contrôle qualité vérifie avec quelle régularité une machine remplit les bouteilles de jus. Le code de départ lit six volumes en ml et affiche la valeur renvoyée par spread_by_hand(a), à côté de celle de np.std. Complète cette fonction pour qu’elle renvoie :

  1. la variance : la moyenne des écarts au carré par rapport à la moyenne de a,
  2. l’écart-type, sa racine carrée.

Pour les volumes 1004, 996, 1011, 993, 1002 et 998 :

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

Essayez vous-même

import numpy as np

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


# Renvoie la variance et l’écart-type du tableau a
def spread_by_hand(a):
    # Écrivez votre code ici, puis renvoyez les deux valeurs à la place de 0, 0
    return 0, 0


# Ne modifiez pas les lignes ci-dessous
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 iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Statistiques pour le ML

Entraînez-vous par vous-même : Compilateur Python en ligne