Regresión Múltiple
En este artículo, profundizaremos en la regresión lineal múltiple, una potente técnica de aprendizaje automático para predecir valores numéricos continuos basados en múltiples variables predictoras. Con la ayuda de Python, construiremos y analizaremos un modelo que puede predecir un resultado numérico basado en múltiples características de entrada.
¿Qué es la Regresión Lineal Múltiple?
La regresión lineal es una técnica utilizada para modelar la relación entre una variable dependiente y una o más variables independientes. Cuando solo hay una variable independiente, se denomina regresión lineal simple. Sin embargo, cuando hay múltiples variables independientes, se denomina regresión lineal múltiple.
En la regresión lineal múltiple, el objetivo es encontrar la línea de mejor ajuste que prediga la variable dependiente en función de las variables independientes. Esta línea se determina minimizando la suma de las distancias al cuadrado entre los valores observados y los valores predichos. Los coeficientes de la línea representan la relación entre cada variable independiente y la variable dependiente, mientras que la intersección representa el valor esperado de la variable dependiente cuando todas las variables independientes son cero.
El Conjunto de Datos
Para ilustrar la regresión lineal múltiple, utilizaremos el conjunto de datos California Housing, que contiene información sobre viviendas en California. El conjunto de datos tiene 20.640 muestras y 8 características, con el valor mediano de la vivienda (en $100.000) como variable dependiente.
from sklearn.datasets import fetch_california_housing
housing = fetch_california_housing()
X = housing.data
y = housing.target
feature_names = housing.feature_namesPreprocesamiento de Datos
Antes de poder construir el modelo, necesitamos preprocesar los datos. Esto implica dividirlo en conjuntos de entrenamiento y prueba, y escalar las características para asegurar que contribuyan por igual al modelo.
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Scale features
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)Construcción del Modelo
Con los datos preprocesados, ahora podemos construir el modelo de regresión lineal múltiple. Utilizaremos la clase LinearRegression de scikit-learn, que proporciona una forma simple y eficiente de implementar el algoritmo.
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train_scaled, y_train)El método .fit() calcula los coeficientes óptimos que minimizan la suma de los cuadrados de los residuos.
Evaluación del Modelo
Para evaluar el rendimiento del modelo, utilizaremos dos métricas: el error cuadrático medio (MSE) y R².
from sklearn.metrics import mean_squared_error, r2_score
y_pred = model.predict(X_test_scaled)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Mean Squared Error: {mse:.4f}")
print(f"R-squared: {r2:.4f}")El MSE mide la diferencia cuadrática promedio entre los valores predichos y los reales, mientras que R² indica la proporción de la varianza en la variable dependiente explicada por el modelo.
Interpretación de los Coeficientes del Modelo
Los coeficientes del modelo representan la relación entre cada variable independiente y la variable dependiente. Un coeficiente positivo indica que la variable tiene un efecto positivo sobre la variable dependiente, mientras que un coeficiente negativo indica lo contrario.
for name, coef in zip(feature_names, model.coef_):
print(f"{name}: {coef:.4f}")Al examinar estos valores, puedes determinar qué características tienen la mayor influencia sobre la variable objetivo.
Conclusión
En este artículo, hemos explorado el concepto de regresión lineal múltiple y cómo puede utilizarse para predecir un resultado numérico continuo basado en múltiples variables predictoras. Hemos utilizado Python y la biblioteca scikit-learn para construir y evaluar un modelo de regresión lineal múltiple utilizando el conjunto de datos California Housing. Los resultados muestran que el modelo es capaz de predecir los valores medianos de las viviendas con una precisión razonable, y los coeficientes proporcionan información sobre la relación entre las variables independientes y la variable dependiente.