Menu
CoddyTech

Histogramas de densidad

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

Este capítulo trata sobre la forma de los datos. Al final, ajustarás una curva de campana a un histograma y detectarás el valor atípico:

Un histograma de los pesos de 300 melones con una curva de campana naranja y suave superpuesta y un punto rojo debajo del melón más ligero

Primero, una corrección. Los recuentos permiten que un grupo grande haga parecer diminuto a uno pequeño, como los tiempos de reacción de 500 adultos frente a los de 50 jugadores:

Dos gráficos de los mismos tiempos de reacción. A la izquierda, recuentos: 500 adultos eclipsan a 50 jugadores, cuyas barras apenas se ven. A la derecha, density=True: ambos grupos se muestran completos; los jugadores son más rápidos y sus resultados están más agrupados

density=True escala cada grupo para que las áreas de sus barras sumen 1:

ax.hist(adults, bins=16, density=True, alpha=0.5, label="adults")
ax.hist(gamers, bins=16, density=True, alpha=0.5, label="gamers")

Cada altura es count / (n * bin width), así que el área de una barra representa su proporción del grupo. Ahora se pueden comparar de forma justa grupos de cualquier tamaño.

challenge icon

Desafío

Fácil

Un hospital de una ciudad pesó a 400 recién nacidos; uno rural, a 60. El código inicial contiene los pesos en city y rural y configura el gráfico con título y etiquetas.

  1. Dibuja un histograma de densidad para cada grupo con bins=10, alpha=0.5 y la etiqueta city o rural.
  2. Añade una leyenda y muestra el gráfico.

Coddy describe tu gráfico. Debería verse como este, de dos productores de tomates:

Dos histogramas de densidad translúcidos titulados Pesos de tomates: tomates de granja de unos 90 a 200 gramos; tomates de huerto más ligeros, en su mayoría de 95 a 145, con una leyenda

Pruébalo tú mismo

import numpy as np
import matplotlib.pyplot as plt

# No cambies las líneas de abajo
rng = np.random.default_rng(23)
city = np.round(rng.normal(3.4, 0.5, size=400), 2)
rural = np.round(rng.normal(3.2, 0.45, size=60), 2)

fig, ax = plt.subplots()
ax.set_title("Birth Weights")
ax.set_xlabel("Weight (kg)")
ax.set_ylabel("Density")

# Escribe tu código abajo
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