La regresión de Elastic Net es un algoritmo de clasificación que supera las limitaciones del método lazo (operador de selección y contracción mínima absoluta) que utiliza una función de penalización en su regularización L1. La regresión de Elastic Net es un enfoque híbrido que combina las penalizaciones de la regularización L2 y L1 de los métodos de lazo y cresta.
Encuentra un estimador en un procedimiento de dos etapas, es decir, primero para cada λ 2 fijo , encuentra los coeficientes de regresión de la cresta y luego realiza una contracción del tipo de regresión de lazo que duplica la cantidad de contracción, lo que finalmente conduce a un mayor sesgo y predicciones deficientes. El cambio de escala de los coeficientes de la versión ingenua de la red elástica multiplicando los coeficientes estimados por (1 + λ 2 ) se realiza para mejorar el rendimiento de la predicción. La regresión de red elástica se utiliza en:
- Aprendizaje métrico
- Optimización de cartera
- Pronóstico del cáncer
La regresión de Elastic Net siempre tiene como objetivo minimizar la siguiente función de pérdida:
Elastic Net también nos permite ajustar el parámetro alfa donde alfa = 0 corresponde a la regresión de Ridge y alfa = 1 a la regresión de Lasso. De manera similar, cuando alfa = 0, la función de penalización se reduce a la regularización L1 (cresta), y cuando alfa = 1, la función de penalización se reduce a la regularización L2 (lazo). Por lo tanto, podemos elegir un valor alfa entre 0 y 1 para optimizar la red elástica y esto reducirá algunos coeficientes y establecerá algunos en 0 para una selección escasa. En la regresión de Elastic Net, el hiperparámetro lambda depende principalmente y en gran medida del hiperparámetro alfa. Ahora implementemos la regresión neta elástica en la programación R.
Implementación en R
El conjunto de datos
mtcars (prueba de carretera de automóviles de tendencia del motor) comprende el consumo de combustible, el rendimiento y 10 aspectos del diseño del automóvil para 32 automóviles. Viene preinstalado con el paquete dplyr en R.
# Installing the package install.packages("dplyr") # Loading package library(dplyr) # Summary of dataset in package summary(mtcars)
Producción:
Realización de una regresión de red elástica en un conjunto de datos
Usando el algoritmo de regresión de Elastic Net en el conjunto de datos entrenando el modelo usando características o variables en el conjunto de datos.
# Installing Packages install.packages("dplyr") install.packages("glmnet") install.packages("ggplot2") install.packages("caret") # X and Y datasets X <- mtcars %>% select(disp) %>% scale(center = TRUE, scale = FALSE) %>% as.matrix() Y <- mtcars %>% select(-disp) %>% as.matrix() # Model Building : Elastic Net Regression control <- trainControl(method = "repeatedcv", number = 5, repeats = 5, search = "random", verboseIter = TRUE) # Training ELastic Net Regression model elastic_model <- train(disp ~ ., data = cbind(X, Y), method = "glmnet", preProcess = c("center", "scale"), tuneLength = 25, trControl = control) elastic_model # Model Prediction x_hat_pre <- predict(elastic_model, Y) x_hat_pre # Multiple R-squared rsq <- cor(X, x_hat_pre)^2 rsq # Plot plot(elastic_model, main = "Elastic Net Regression")
Producción:
- Entrenamiento del modelo de regresión de red elástica:
El modelo de regresión de Elastic Net está entrenado para encontrar los valores alfa y lambda óptimos.
- Modelo elastic_model:
El modelo de regresión de Elastic Net utiliza el valor alfa como 0,6242021 y el valor lambda como 1,801398. Se utilizó RMSE para seleccionar el modelo óptimo utilizando el valor más pequeño.
- Predicción del modelo:
El modelo se predice utilizando el conjunto de datos Y y se muestran los valores.
- Múltiple R-Cuadrado:
Los valores múltiples de R-Squared de disp son 0.9514679.
- Gráfico:
El porcentaje de mezcla se grafica con puntajes RMSE con diferentes valores del parámetro de regularización.
Por lo tanto, las aplicaciones de regresión de Elastic Net se utilizan en muchos sectores de la industria y con plena capacidad.