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
- Variable Dependiente (Y): La variable que queremos predecir.
- Variable Independiente (X): La variable que utilizamos para hacer la predicción.
- Coeficientes (β0, β1, ...): Los parámetros que el modelo aprende durante el entrenamiento.
- 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
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
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
- ¿Qué es el Machine Learning?
- Historia y evolución del Machine Learning
- Tipos de Machine Learning
- Aplicaciones del Machine Learning
Módulo 2: Fundamentos de Estadística y Probabilidad
- Conceptos básicos de estadística
- Distribuciones de probabilidad
- Inferencia estadística
- Teorema de Bayes
Módulo 3: Preprocesamiento de Datos
Módulo 4: Algoritmos de Machine Learning Supervisado
- Regresión lineal
- Regresión logística
- Árboles de decisión
- Máquinas de soporte vectorial (SVM)
- K-Vecinos más cercanos (K-NN)
- Redes neuronales
Módulo 5: Algoritmos de Machine Learning No Supervisado
- Clustering: K-means
- Clustering jerárquico
- Análisis de componentes principales (PCA)
- Análisis de agrupamiento DBSCAN
Módulo 6: Evaluación y Validación de Modelos
Módulo 7: Técnicas Avanzadas y Optimización
- Ensemble Learning
- Gradient Boosting
- Redes neuronales profundas (Deep Learning)
- Optimización de hiperparámetros
Módulo 8: Implementación y Despliegue de Modelos
- Frameworks y bibliotecas populares
- Implementación de modelos en producción
- Mantenimiento y monitoreo de modelos
- Consideraciones éticas y de privacidad
Módulo 9: Proyectos Prácticos
- Proyecto 1: Predicción de precios de viviendas
- Proyecto 2: Clasificación de imágenes
- Proyecto 3: Análisis de sentimientos en redes sociales
- Proyecto 4: Detección de fraudes
