Menu
CoddyTech

La distribution d’échantillonnage

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

Les sessions vidéo présentent une asymétrie à droite : la plupart durent quelques minutes, quelques-unes durent deux heures. Pourtant, les moyennes de 1000 échantillons de 40 sessions forment une cloche :

Deux histogrammes sur un même graphique. Les sessions individuelles, en gris, s'accumulent près de 0 minute et présentent une longue traîne jusqu'à 120. Les moyennes de 40 sessions forment une cloche bleue étroite autour de la moyenne de la population, qui est de 30 minutes

L’histogramme de nombreuses moyennes d’échantillons constitue la distribution d’échantillonnage. Avec suffisamment de valeurs dans chaque échantillon, il prend la forme d’une cloche centrée sur la moyenne de la population, même pour des données asymétriques :

means = sample_means(sessions, 40, 1000)  # votre fonction de Sample Means Vary
ax.hist(means, bins=12)

C’est le théorème central limite. Il rend les moyennes prévisibles : l’erreur moyenne d’un modèle sur un ensemble de test suit elle aussi approximativement une loi normale.

challenge icon

Défi

Moyen

Les tailles des 6000 fichiers d’un espace de stockage cloud dans files (Mo) présentent une asymétrie à droite : beaucoup de documents, quelques vidéos. Le programme lit une taille d’échantillon ; le code de départ contient sample_means et deux graphiques.

  1. Obtiens 500 moyennes d’échantillons de cette taille.
  2. Affiche la moyenne moins la médiane des fichiers, puis celle des moyennes (2 décimales).
  3. Trace l’histogramme des fichiers sur axs[0] et celui des moyennes sur axs[1], avec bins=12, puis affiche-les.

Pour un autre espace de stockage et 60 :

Files: mean - median = 25.28 MB
Sample means: mean - median = 0.55 MB

Deux histogrammes côte à côte. Tous les fichiers : une première barre haute et une longue queue fine vers la droite. Moyennes des échantillons : une cloche symétrique

Coddy affiche ensuite chaque graphique. Un écart proche de 0 signifie que l’asymétrie a disparu.

Essayez vous-même

import numpy as np
import matplotlib.pyplot as plt

size = int(input())

# Ne modifiez pas les lignes ci-dessous : la taille en MB de chaque fichier du lecteur
rng = np.random.default_rng(21)
files = np.round(rng.random(6000) ** 4 * 300 + 5, 2)


# Votre fonction de Sample Means Vary : les moyennes de count échantillons
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)


fig, axs = plt.subplots(1, 2)
axs[0].set_title("All Files")
axs[0].set_xlabel("File size (MB)")
axs[1].set_title("Sample Means")
axs[1].set_xlabel("Mean file size (MB)")

# Écrivez votre code ci-dessous
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