Previsioni usando glmnet in R


13

Sto cercando di modellare alcuni dati usando il glmnetpacchetto in R. Supponiamo di avere i seguenti dati

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)

(Questa è una semplificazione; i miei dati sono molto più complicati.) Quindi ho usato il seguente codice per creare il modello 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)

Sto usando standardize=FALSEperché i miei dati di vita reale sono già standardizzati. Quindi voglio fare una previsione su un nuovo set di dati. Diciamo che i miei nuovi dati sono:

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")

Mi aspetto che i risultati contengano 4 elementi (previsioni del newdata), ma invece mi dà una matrice 4x398. Che cosa sto facendo di sbagliato?

Risposte:


14

È necessario specificare per quale valore di lambda si desidera prevedere la risposta. Tutto quello che devi fare è chiamare come ad esempio:

results <-predict(GLMnet_model_1, s=0.01, newx, type="response")
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.