Vorhersagen unter Verwendung von glmnet in R

13

Ich versuche, einige Daten mit dem glmnetPaket in R zu modellieren . Nehmen wir an, ich habe die folgenden Daten

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)

(Dies ist eine Vereinfachung; meine Daten sind viel komplizierter.) Dann habe ich den folgenden Code verwendet, um das glmnet-Modell zu erstellen.

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

Ich benutze, standardize=FALSEweil meine realen Daten bereits standardisiert sind. Dann möchte ich eine Vorhersage über einen neuen Datensatz machen. Nehmen wir an, meine neuen Daten sind:

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

Ich würde erwarten, dass die Ergebnisse 4 Elemente (Vorhersagen des newdata) enthalten, aber stattdessen erhalte ich eine 4x398-Matrix. Was mache ich falsch?

Benoit_Plante
quelle

Antworten:

14

Sie müssen angeben, für welchen Lambda-Wert Sie die Antwort vorhersagen möchten. Alles was Sie tun müssen, ist anzurufen wie zB:

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