Menu
CoddyTech

Diagrammes en boîte

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

Chaque jeu de données cache des valeurs inhabituelles : une faute de frappe, un pépin, une journée record. Ce chapitre les repère et les apprivoise, en commençant par le graphique qui les montre, la boîte à moustaches :

11 durées d’épisodes de podcast représentées par des points, et à côté leur boîte à moustaches : une boîte allant de Q1, 39, à Q3, 47.5, divisée par la ligne médiane à 43, des moustaches descendant jusqu’à 32 et montant jusqu’à 52, et un point isolé à 75 indiqué comme valeur aberrante

ax.boxplot le trace :

episodes = np.array([41, 36, 49, 43, 32, 46, 75, 40, 52, 38, 44])
fig, ax = plt.subplots()
ax.boxplot(episodes)
plt.show()

La boîte contient la moitié centrale des valeurs, de Q1 à Q3, séparée par la médiane. Les moustaches s’étendent jusqu’aux dernières valeurs qui ne sont pas trop éloignées.

Les points éloignés des autres sont des valeurs aberrantes, des valeurs très éloignées du reste : celles qu’il faut vérifier avant qu’un modèle n’apprenne à partir d’elles.

challenge icon

Défi

Moyen

Une famille a consigné deux semaines de lecture dans reading.csv, avec une colonne de minutes par personne. Le programme lit un nom, et le code de départ prépare le graphique.

  1. Trace un diagramme en boîte pour la colonne de cette personne.
  2. Affiche sa médiane et les bords de la boîte, Q1 et Q3, chacun arrondi à 2 décimales, comme ci-dessous.

Pour Sam, une autre personne qui lit, le programme affiche :

Typical day: 97.5 minutes
Middle half: 90.5 to 108.75 minutes

et trace ce graphique (Coddy décrira ensuite le tien) :

Un diagramme en boîte intitulé Reading: Sam avec Minutes sur l’axe vertical : une boîte allant d’environ 90 à 109, avec la ligne de la médiane près de 98, des moustaches de 87 à 128 et des points aberrants à 61 et 205

Essayez vous-même

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

reading = pd.read_csv("reading.csv")
name = input()
# Ne modifiez pas les lignes ci-dessous
fig, ax = plt.subplots()
ax.set_title(f"Reading: {name}")
ax.set_ylabel("Minutes")

# É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