Predicciones usando glmnet en R


13

Estoy tratando de modelar algunos datos usando el glmnetpaquete en R. Digamos que tengo los siguientes datos

training_x <- data.frame(variable1 = c(1, 2, 3, 2, 3),
                         variable2 = c(1, 2, 3, 4, 5))
y <- c(1, 2, 3, 4, 5)

(Esto es una simplificación; mis datos son mucho más complicados). Luego usé el siguiente código para crear el modelo glmnet.

x <- as.matrix(training_x)
library(glmnet)
GLMnet_model_1 <- glmnet(x, y, family="gaussian", alpha=0.755,
                         nlambda=1000, standardize=FALSE, maxit=100000)

Estoy usando standardize=FALSEporque mis datos de la vida real ya están estandarizados. Entonces quiero hacer predicciones sobre un nuevo conjunto de datos. Digamos que mis nuevos datos son:

newdata <- as.matrix(data.frame(variable1 = c(2, 2, 1, 3), 
                                variable2 = c(6, 2, 1, 3)))
results <- predict(object=GLMnet_model_1, newx, type="response")

Esperaría que los resultados contengan 4 elementos (predicciones de newdata), pero en cambio me da una matriz 4x398. ¿Qué estoy haciendo mal?

Respuestas:


14

Debe especificar para qué valor de lambda desea predecir la respuesta. Todo lo que necesita hacer es llamar como por ejemplo:

results <-predict(GLMnet_model_1, s=0.01, newx, type="response")
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.