Implementación de Regularización en Modelos de Regresión Lineal
Clase 14 de 37 • Curso Profesional de Machine Learning con scikit-learn
Resumen
¿Cómo comenzar con la implementación de técnicas de regularización?
El uso de técnicas de regularización es esencial en la construcción de modelos predictivos sólidos en machine learning. En esta clase, nos enfocamos en implementar dichas técnicas utilizando regresores lineales que ya están integrados en scikit-learn, un módulo muy potente en Python para aprender máquinas. En particular, se trabaja con un conjunto de datos del Reporte de la Felicidad Mundial 2017, que incluye variables de diferentes países como el índice de corrupción y la expectativa de vida.
¿Cómo cargar los datos y preparar el entorno de trabajo?
Antes de comenzar con cualquier modelo, es crucial tener un entorno de desarrollo bien configurado. Aquí se utilizan librerías esenciales como pandas para la gestión de datos, y scikit-learn para los modelos predictivos. A través de pandas, se cargan los datos en un DataFrame, que permite manipular y explorar la información de manera efectiva mediante funciones como describe()
, que ofrece descripciones estadísticas de las columnas.
import pandas as pd
import sklearn
from sklearn.linear_model import LinearRegression, Lasso, Ridge
...
data = pd.read_csv('data/world_happiness_report_2017.csv')
print(data.describe())
¿Cómo dividir los datos para entrenamiento y prueba?
Dividir los datos en conjuntos de entrenamiento y prueba es fundamental para evaluar la eficacia de un modelo. Esta separación te permite no solo ajustar el modelo, sino también validarlo con datos que no ha visto anteriormente.
from sklearn.model_selection import train_test_split
# Definición de características (features) y la variable objetivo (target)
X = data[['gdp_per_capita', 'family', 'lifespan', 'freedom', 'corruption', 'generosity', 'dystopia']].values
y = data['happiness_score'].values
# Dividiendo los datos en conjuntos de entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
¿Cómo aplicar los modelos de regresión?
Scikit-learn ofrece varios modelos de regresión lineal, entre los que destacan el modelo lineal básico, Lasso y Ridge. Cada uno tiene sus particularidades en relación con cómo manejan la regularización.
# Modelo de regresión lineal
linear_model = LinearRegression()
linear_model.fit(X_train, y_train)
y_pred_linear = linear_model.predict(X_test)
# Modelo de regresión Lasso
lasso_model = Lasso(alpha=1.0)
lasso_model.fit(X_train, y_train)
y_pred_lasso = lasso_model.predict(X_test)
# Modelo de regresión Ridge
ridge_model = Ridge(alpha=1.0)
ridge_model.fit(X_train, y_train)
y_pred_ridge = ridge_model.predict(X_test)
¿Cómo evaluar los modelos?
La evaluación de los modelos se hace mediante el cálculo del error cuadrático medio (MSE), que mide la diferencia promedio al cuadrado entre los valores reales y las predicciones realizadas por el modelo.
from sklearn.metrics import mean_squared_error
# Cálculo del MSE para cada modelo
mse_linear = mean_squared_error(y_test, y_pred_linear)
mse_lasso = mean_squared_error(y_test, y_pred_lasso)
mse_ridge = mean_squared_error(y_test, y_pred_ridge)
print('MSE Linear:', mse_linear)
print('MSE Lasso:', mse_lasso)
print('MSE Ridge:', mse_ridge)
¿Qué nos dicen los coeficientes de los modelos?
Los coeficientes en los modelos de regresión reflejan la importancia de cada característica. En Lasso, ciertos coeficientes pueden reducirse a cero, eliminando de facto algunas características. Por otro lado, Ridge ajusta los coeficientes hacia valores cercanos a cero, pero sin descartarlos por completo, lo que ayuda a manejar la multicolinealidad.
print('Coeficientes Linear:', linear_model.coef_)
print('Coeficientes Lasso:', lasso_model.coef_)
print('Coeficientes Ridge:', ridge_model.coef_)
Este análisis de los coeficientes y la comparación de los MSE entre diferentes modelos te permitirá seleccionar el más adecuado, teniendo en cuenta cuán bien se ajusta el modelo a los datos y su capacidad de generalización a nuevas muestras.
¡Adelante! Continúa explorando y aprendiendo sobre machine learning. Cada paso es un avance hacia el dominio de esta poderosa tecnología.