1 · Regresión lineal simple
Ajusta una recta a dos variables — la base con la que se compara todo otro modelo supervisado.
Ajusta una recta ŷ = wx + b que minimiza la suma de errores al cuadrado — tu primer modelo de ML en dos líneas de código.
Sin esto:
Sin regresión lineal no tienes línea base; todo modelo más complejo debe superarla antes de que valga la pena desplegarlo.
La regresión lineal es el modelo de aprendizaje supervisado más simple — y posiblemente el más importante. Dados pares (x, y), encuentra la recta ŷ = wx + b que pasa "lo más cerca posible" de los puntos de datos. "Lo más cerca posible" significa minimizar el Error Cuadrático Medio (MSE):
MSE = (1/n) · Σ(yᵢ − ŷᵢ)²
El parámetro w es la pendiente (cuánto cambia ŷ por unidad de incremento en x) y b es la ordenada al origen (el valor de ŷ cuando x = 0). Juntos definen toda recta posible en 2D — así que ajustar el modelo es una búsqueda sobre todos los pares (w, b) posibles para encontrar el que hace que las predicciones sean más cercanas a las etiquetas.
¿Por qué MSE? Porque los errores al cuadrado penalizan las grandes desviaciones más que las pequeñas, y el cuadrado hace la función de pérdida diferenciable en todas partes — lo que hace la optimización tratable. El mínimo único del MSE tiene una solución de forma cerrada llamada Mínimos Cuadrados Ordinarios (OLS), que derivaremos a mano en esta lección.
Las cuatro suposiciones OLS que heredamos de la estadística:
- Linealidad — la relación verdadera entre x e y es lineal.
- Independencia — los residuos no están correlacionados entre sí.
- Homocedasticidad — la varianza de los residuos es constante para todos los valores de x.
- Normalidad — los residuos tienen distribución aproximadamente normal (necesario para inferencia válida / intervalos de confianza; menos crítico para predicción pura).
Python (in browser)
`model.coef_` es un array 1-D incluso para una sola variable — accede con `[0]`. El w ≈ 2.5 y b ≈ 1.0 recuperados confirman que el modelo encontró los parámetros generadores reales.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
`model.score(X, y)` devuelve R² — la proporción de varianza explicada. En un dataset lineal limpio ambos valores de R² son cercanos a 1.0.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Python (in browser)
La fórmula OLS w = cov(x,y)/var(x) surge de establecer ∂(MSE)/∂w = 0 y resolver. Ambos enfoques dan resultados idénticos — sklearn usa la misma derivación internamente.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Los supuestos OLS determinan si los errores estándar e intervalos de confianza de tus coeficientes son confiables — no si la recta en sí es el mejor ajuste lineal.
Si sklearn devuelve `coef_ = [3.2]` e `intercept_ = -1.5`, ¿qué predice el modelo para x = 4?
Regresión lineal: formulación del problema — el capítulo de MML que deriva ŷ = wx + b y la pérdida MSE desde primeros principios.
- El modelo es ŷ = wx + b; la pérdida es MSE = (1/n)·Σ(yᵢ − ŷᵢ)². Minimizar el MSE da la solución OLS: w = cov(x,y)/var(x), b = ȳ − w·x̄.
- sklearn necesita X con forma (n, 1) para una sola variable — siempre `X.reshape(-1, 1)` antes de ajustar.
- R² mide la proporción de varianza explicada: 0 = no mejor que la media, 1 = perfecto. Siempre evalúa en un conjunto de test separado.
- La regresión lineal es la línea base universal — cualquier modelo más complejo debe superarla para justificar su costo adicional.
Toda tarea de regresión supervisada comienza aquí. La regresión logística es regresión lineal en el espacio de variables, seguida de una sigmoide. Las capas lineales de redes neuronales SON regresión lineal. Incluso el gradient boosting ajusta regresiones lineales en las hojas de cada aprendiz débil.
Si lo quitas: No tendrías punto de referencia — 'este modelo logra 92% de R²' no significa nada sin 'la línea base lineal logra 87%'.