Implementación de Regularización en Modelos de Regresión Lineal
Clase 14 de 37 • Curso Profesional de Machine Learning con scikit-learn
Contenido del curso
- 8

Selección de Variables en Modelos de Aprendizaje Automático
06:56 - 9

Reducción de Dimensionalidad con Análisis de Componentes Principales
05:52 - 10

Reducción de Dimensionalidad y Regresión Logística con Python
09:57 - 11

Clasificación de Enfermedad Cardiaca con PCA y Regresión Logística
13:45 - 12

Funciones Kernel en la Clasificación de Datos Complejos
09:01 - 13

Regularización en Modelos de Machine Learning
07:39 - 14

Implementación de Regularización en Modelos de Regresión Lineal
15:19 - 15

Análisis de Resultados en Modelos de Regresión Ridge y Lasso
02:42 - 16
Regularización ElasticNet con Scikit-learn: Conceptos y Aplicación
01:41
- 28

Validación Cruzada en Modelos de Machine Learning
06:53 - 29

Validación Cruzada con Scikit-learn: Cruz Vales Cor y KFold
09:09 - 30

Optimización de Modelos con Búsqueda en Grilla y Aleatoria
07:22 - 31

Automatización de Parámetros en Modelos de Regresión con Random Forest
10:38 - 32
Optimización Automática de Modelos con Auto-sklearn
01:50
- 33

Estructuración Modular de Código Python para Machine Learning
10:17 - 34

Automatización de Modelos Machine Learning con Python
14:18 - 35

Publicación de Modelos de IA con Flask y Python
10:36 - 36

Optimización de Modelos de Machine Learning para Producción
00:42 - 37
Recursos para Aprender Machine Learning y Data Science
00:58
¿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.