Menu
CoddyTech

Diagramas de caja

Parte de la sección Estadística para ML del Journey de Machine Learning de Coddy. Lección 24 de 64.

Todo conjunto de datos oculta valores inusuales: un error tipográfico, un fallo, un día récord. Este capítulo los encuentra y los controla, empezando con el gráfico que los muestra: el diagrama de caja:

11 duraciones de episodios de pódcast como puntos y, junto a ellas, su diagrama de caja: una caja desde Q1, 39, hasta Q3, 47.5, dividida por la línea de la mediana en 43, bigotes que bajan hasta 32 y suben hasta 52, y un único punto aislado en 75 marcado como valor atípico

ax.boxplot lo dibuja:

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

La caja contiene la mitad central de los valores, de Q1 a Q3, dividida por la mediana. Los bigotes llegan hasta los últimos valores que no están demasiado alejados.

Los puntos que quedan fuera son valores atípicos, valores alejados del resto: los que hay que revisar antes de que un modelo aprenda de ellos.

challenge icon

Desafío

Intermedio

Una familia registró dos semanas de lectura en reading.csv, con una columna de minutos por persona. El programa lee un nombre y el código inicial prepara el gráfico.

  1. Dibuja un diagrama de caja de la columna de esa persona.
  2. Imprime su mediana y los extremos de la caja, Q1 y Q3, cada uno redondeado a 2 decimales, como se muestra abajo.

Para Sam, otra persona lectora, el programa imprime:

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

y dibuja este gráfico (Coddy describirá el tuyo después):

Un diagrama de caja titulado Reading: Sam, con Minutes en el eje lateral: una caja desde aproximadamente 90 hasta 109, con la línea de la mediana cerca de 98, bigotes desde 87 hasta 128 y puntos atípicos en 61 y 205

Pruébalo tú mismo

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

reading = pd.read_csv("reading.csv")
name = input()
# No cambies las líneas de abajo
fig, ax = plt.subplots()
ax.set_title(f"Reading: {name}")
ax.set_ylabel("Minutes")

# Escribe tu código a continuación
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Estadística para ML

Practica por tu cuenta: Compilador de Python online