17 votos

Predicciones mediante glmnet en R

Estoy tratando de modelo, algunos datos utilizando glmnet paquete en R. Vamos a decir 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 es mucho más complicado). Luego he utilizado el siguiente código para crear el glmnet modelo.

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 estandarizar=FALSE porque mi vida real de datos ya está estandarizado.

Entonces quiero hacer predicción a través de un nuevo conjunto de datos. Digamos que mis nuevos datos

newdata <- data.frame(variable1=c(2,2,1,3),variable2=c(6,2,1,3))

newx <- as.matrix(newdata)
results <-predict(object = GLMnet_model_1, newx, type="response")

Yo esperaría los resultados de contener a 4 elementos (las predicciones de la nuevosdatos), pero en lugar de eso me da un 4x398 de la matriz... ¿Qué estoy haciendo mal?

16voto

Elias Puntos 101

Es necesario especificar para qué valor de lambda predecir la respuesta. Todo lo que necesitas hacer es llamar a como por ejemplo:

results <-predict(GLMnet_model_1, s=0.01, newx, type="response")

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X