Menu
CoddyTech

Trazar el ajuste

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

Dos números describen un ajuste; solo un gráfico muestra si sigue los datos. En una cocina se cronometraron seis hervidas de agua en una tetera. Dibuja la línea en el mismo ax que el diagrama de dispersión:

liters = np.array([0.5, 0.8, 1.0, 1.2, 1.5, 1.7])
minutes = np.array([1.6, 2.4, 2.7, 3.3, 3.9, 4.5])
slope, intercept = np.polyfit(liters, minutes, 1)
xs = np.linspace(liters.min(), liters.max(), 50)
fig, ax = plt.subplots()
ax.scatter(liters, minutes, label="Boils")
ax.plot(xs, slope * xs + intercept, color="C1", label="Fit")
ax.legend()
plt.show()

xs va desde la x más pequeña hasta la más grande, así que la línea empieza y termina donde lo hacen los datos:

Seis hervidores de agua hirviendo representados como puntos, minutos para hervir frente a litros de agua, que aumentan de 1.6 a 4.5 minutos, con una línea naranja de ajuste que pasa por ellos desde 0.5 hasta 1.7 litros

Dibujar las predicciones de un modelo sobre sus datos es la forma más rápida de comprobar que aprendió algo razonable. Una línea que no pasa por los puntos indica un ajuste defectuoso.

challenge icon

Desafío

Intermedio

Un administrador de un edificio cronometró 12 viajes en ascensor: los floors recorridos y los seconds que tardaron. El código inicial configura el gráfico con título y etiquetas.

  1. Ajusta la línea que predice seconds a partir de floors.
  2. Dibuja los viajes como un diagrama de dispersión con la etiqueta Rides y la línea con la etiqueta Fit, desde el menor número de pisos hasta el mayor.
  3. Añade una leyenda y muestra el gráfico.

No imprime nada; Coddy describe tu gráfico. El de otro edificio se ve así:

Un gráfico titulado Elevator Rides: ocho puntos que suben desde 14 segundos en 2 pisos hasta 51 segundos en 20 pisos, una línea ajustada desde el piso del primer punto hasta el del último, y una leyenda con los nombres Rides y Fit

Pruébalo tú mismo

import numpy as np
import matplotlib.pyplot as plt

floors = np.array([3, 7, 1, 12, 5, 9, 15, 2, 10, 6, 13, 8])
seconds = np.array([15.3, 27.0, 12.4, 36.0, 19.5, 28.8, 44.9, 12.7, 33.2, 19.4, 41.7, 27.0])
# No cambies las líneas de abajo
fig, ax = plt.subplots()
ax.set_title("Elevator Rides")
ax.set_xlabel("Floors")
ax.set_ylabel("Seconds")

# 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