Tecnología que te entiende
Machine Learning: regresión lineal explicada con Python
IA

Machine Learning: regresión lineal explicada con Python

12 Mar 2026 3 min de lectura 991 vistas

La regresión lineal es el algoritmo más simple del Machine Learning — y uno de los más poderosos para entender los fundamentos. Si puedes explicar cómo funciona la regresión lineal, puedes entender casi cualquier otro algoritmo de ML.

¿Qué aprende un modelo de ML?

Un modelo de Machine Learning aprende patrones en datos para hacer predicciones. En lugar de programar reglas explícitas, el algoritmo encuentra la relación entre los datos de entrada (features) y la salida esperada (target) por sí solo.

Regresión lineal: la intuición

Imagina que quieres predecir el precio de un departamento basándote en su tamaño en m². Si graficas todos tus datos (m² en X, precio en Y), la regresión lineal encuentra la línea recta que mejor se ajusta a esos puntos.

La ecuación es: precio = m × metros + b

  • m (pendiente) — cuánto sube el precio por cada m² adicional
  • b (intercepto) — el precio base

El algoritmo ajusta m y b para minimizar el error cuadrático medio (MSE) entre sus predicciones y los valores reales.

Implementación con Python

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt

# Datos de ejemplo: metros cuadrados → precio (en miles de pesos)
datos = {
    'metros': [45, 60, 75, 80, 100, 120, 150, 90, 55, 130],
    'precio': [850, 1100, 1400, 1500, 1900, 2200, 2800, 1700, 950, 2500]
}
df = pd.DataFrame(datos)

# Preparar features (X) y target (y)
X = df[['metros']]  # doble corchete → DataFrame en lugar de Series
y = df['precio']

# Dividir en datos de entrenamiento (80%) y prueba (20%)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# Crear y entrenar el modelo
modelo = LinearRegression()
modelo.fit(X_train, y_train)

# Ver los parámetros aprendidos
print(f"Pendiente (m): {modelo.coef_[0]:.2f}")
print(f"Intercepto (b): {modelo.intercept_:.2f}")
# Salida aprox: pendiente = 18.5, intercepto = 15.3
# Interpretación: cada m² extra cuesta ~$18,500 pesos

# Predecir con datos de prueba
y_pred = modelo.predict(X_test)

# Evaluar el modelo
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Error cuadrático medio (MSE): {mse:.2f}")
print(f"R² Score: {r2:.4f}")
# R² de 1.0 = modelo perfecto, 0 = no mejor que predecir el promedio siempre

¿Qué es R² y por qué importa?

El coeficiente de determinación (R²) mide qué porcentaje de la variación en el precio explica el modelo. Un R² de 0.92 significa que el tamaño en m² explica el 92% de la variación en precio — el 8% restante se debe a otros factores (ubicación, antigüedad, etc.).

Regresión múltiple: más features

# Con múltiples variables predictoras
datos_multi = {
    'metros': [45, 60, 75, 80, 100, 120, 150, 90, 55, 130],
    'habitaciones': [1, 2, 2, 3, 3, 3, 4, 3, 1, 4],
    'antiguedad': [5, 10, 2, 1, 8, 3, 15, 6, 20, 1],
    'precio': [850, 1100, 1400, 1500, 1900, 2200, 2800, 1700, 950, 2500]
}

df_multi = pd.DataFrame(datos_multi)
X_multi = df_multi[['metros', 'habitaciones', 'antiguedad']]
y_multi = df_multi['precio']

modelo_multi = LinearRegression()
modelo_multi.fit(X_multi, y_multi)

# Predecir el precio de un depto de 85 m², 2 habitaciones, 4 años
nuevo = pd.DataFrame({'metros': [85], 'habitaciones': [2], 'antiguedad': [4]})
precio_predicho = modelo_multi.predict(nuevo)
print(f"Precio estimado: ${precio_predicho[0]:,.0f} miles de pesos")
💡 Supuestos de la regresión lineal: la relación entre X e Y es lineal · los errores siguen una distribución normal · no hay multicolinealidad entre features · los errores son independientes entre sí. Si tus datos no cumplen estos supuestos, necesitas un algoritmo diferente.
✅ Cuándo usar regresión lineal: cuando quieres predecir un valor numérico continuo · cuando la relación es (aproximadamente) lineal · cuando la interpretabilidad importa — los coeficientes tienen significado directo · como baseline antes de probar modelos más complejos.
"La regresión lineal es como aprender las escalas en guitarra — quizás no es lo que tocarás en concierto, pero sin ella no puedes aprender nada más."