Menu
CoddyTech

Ajuste por mínimos cuadrados

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

Probar líneas podría llevar una eternidad. np.polyfit(x, y, 1) encuentra la mejor de una vez: la línea con la menor suma de residuos al cuadrado. Aquí está la profundidad de la nieve durante una tormenta:

hours = np.array([1, 2, 3, 5, 6])
depth = np.array([14, 22, 35, 52, 61])
slope, intercept = np.polyfit(hours, depth, 1)
print(np.round(slope, 2), np.round(intercept, 2))

Esto imprime 9.5 4.5: unos 9.5 cm más de nieve por hora, y 4.5 cm en la hora 0. Ninguna otra línea se desvía menos:

Profundidad de la nieve frente a las horas como cinco puntos, con tres líneas: dos estimaciones discontinuas con sumas de residuos al cuadrado de 159 y 18, y la línea gruesa de polyfit con 6.5

El 1 solicita una línea recta, y x va primero. Esto es regresión lineal, el primer modelo que entrenas en la sección 3.

challenge icon

Desafío

Intermedio

Un fabricante de drones quiere saber qué medida predice mejor el tiempo de vuelo. drones.csv contiene 15 vuelos: payload_g, wind_kmh y flight_min. El código inicial carga el archivo y define ssr(x, y, slope, intercept).

  1. Para cada columna de columns, ajusta la recta que predice flight_min a partir de ella.
  2. Imprime su ecuación y SSR como se muestra a continuación: la pendiente con 3 decimales, el intercepto y SSR con 2.
  3. Imprime la columna con el SSR menor.

Para otro dron:

payload_g: flight_min = -0.001 * payload_g + 21.55, SSR 164.94
wind_kmh: flight_min = -0.481 * wind_kmh + 28.13, SSR 9.1
Better predictor: wind_kmh

Pruébalo tú mismo

import numpy as np
import pandas as pd


# Devuelve la suma de los residuos al cuadrado de la recta slope * x + intercept (lección 35)
def ssr(x, y, slope, intercept):
    return ((y - (slope * x + intercept)) ** 2).sum()


drones = pd.read_csv("drones.csv")
columns = ["payload_g", "wind_kmh"]

# 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