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