La regresión lineal es uno de los algoritmos más simples y ampliamente utilizados en Machine Learning. Se utiliza para modelar la relación entre una variable dependiente (también llamada variable objetivo) y una o más variables independientes (también llamadas características o predictores).

Conceptos Clave

  1. Variable Dependiente (Y): La variable que queremos predecir.
  2. Variable Independiente (X): La variable que utilizamos para hacer la predicción.
  3. Coeficientes (β0, β1, ...): Los parámetros que el modelo aprende durante el entrenamiento.
  4. Error (ε): La diferencia entre el valor real y el valor predicho.

Ecuación de la Regresión Lineal

La ecuación de una regresión lineal simple (con una sola variable independiente) es:

\[ Y = β_0 + β_1X + ε \]

Donde:

  • \( Y \) es la variable dependiente.
  • \( X \) es la variable independiente.
  • \( β_0 \) es el intercepto.
  • \( β_1 \) es el coeficiente de la variable independiente.
  • \( ε \) es el error.

Para una regresión lineal múltiple (con múltiples variables independientes), la ecuación se extiende a:

\[ Y = β_0 + β_1X_1 + β_2X_2 + ... + β_nX_n + ε \]

Ejemplo Práctico

Vamos a implementar un ejemplo de regresión lineal simple utilizando Python y la biblioteca scikit-learn.

Paso 1: Importar las Bibliotecas Necesarias

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

Paso 2: Crear un Conjunto de Datos de Ejemplo

# Generar datos de ejemplo
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

# Visualizar los datos
plt.scatter(X, y)
plt.xlabel("X")
plt.ylabel("y")
plt.title("Datos de Ejemplo")
plt.show()

Paso 3: Dividir los Datos en Conjuntos de Entrenamiento y Prueba

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

Paso 4: Entrenar el Modelo de Regresión Lineal

# Crear el modelo de regresión lineal
model = LinearRegression()

# Entrenar el modelo
model.fit(X_train, y_train)

Paso 5: Hacer Predicciones

# Hacer predicciones sobre el conjunto de prueba
y_pred = model.predict(X_test)

Paso 6: Evaluar el Modelo

# Calcular el error cuadrático medio (MSE)
mse = mean_squared_error(y_test, y_pred)

# Calcular el coeficiente de determinación (R^2)
r2 = r2_score(y_test, y_pred)

print(f"Error Cuadrático Medio (MSE): {mse}")
print(f"Coeficiente de Determinación (R^2): {r2}")

Paso 7: Visualizar los Resultados

# Visualizar la línea de regresión
plt.scatter(X_test, y_test, color='blue', label='Datos Reales')
plt.plot(X_test, y_pred, color='red', linewidth=2, label='Línea de Regresión')
plt.xlabel("X")
plt.ylabel("y")
plt.title("Regresión Lineal")
plt.legend()
plt.show()

Ejercicio Práctico

Ejercicio 1: Implementar una Regresión Lineal Múltiple

Utilizando el mismo conjunto de datos, añade una segunda variable independiente y ajusta un modelo de regresión lineal múltiple. Evalúa el rendimiento del modelo utilizando el error cuadrático medio (MSE) y el coeficiente de determinación (R^2).

Solución

# Generar una segunda variable independiente
X2 = 3 * np.random.rand(100, 1)

# Combinar ambas variables independientes
X_combined = np.hstack((X, X2))

# Generar la variable dependiente
y_combined = 4 + 3 * X + 2 * X2 + np.random.randn(100, 1)

# Dividir los datos en conjuntos de entrenamiento y prueba
X_train_combined, X_test_combined, y_train_combined, y_test_combined = train_test_split(X_combined, y_combined, test_size=0.2, random_state=0)

# Crear y entrenar el modelo de regresión lineal múltiple
model_combined = LinearRegression()
model_combined.fit(X_train_combined, y_train_combined)

# Hacer predicciones
y_pred_combined = model_combined.predict(X_test_combined)

# Evaluar el modelo
mse_combined = mean_squared_error(y_test_combined, y_pred_combined)
r2_combined = r2_score(y_test_combined, y_pred_combined)

print(f"Error Cuadrático Medio (MSE) - Múltiple: {mse_combined}")
print(f"Coeficiente de Determinación (R^2) - Múltiple: {r2_combined}")

Conclusión

En esta sección, hemos cubierto los conceptos básicos de la regresión lineal, incluyendo su ecuación fundamental y cómo implementarla utilizando Python y scikit-learn. También hemos explorado cómo evaluar el rendimiento del modelo y cómo extender la regresión lineal a múltiples variables independientes. Con estos conocimientos, estás preparado para aplicar la regresión lineal a problemas del mundo real y avanzar hacia algoritmos más complejos en Machine Learning.

Curso de Machine Learning

Módulo 1: Introducción al Machine Learning

Módulo 2: Fundamentos de Estadística y Probabilidad

Módulo 3: Preprocesamiento de Datos

Módulo 4: Algoritmos de Machine Learning Supervisado

Módulo 5: Algoritmos de Machine Learning No Supervisado

Módulo 6: Evaluación y Validación de Modelos

Módulo 7: Técnicas Avanzadas y Optimización

Módulo 8: Implementación y Despliegue de Modelos

Módulo 9: Proyectos Prácticos

Módulo 10: Recursos Adicionales

© Copyright 2024. Todos los derechos reservados