Prognozy za pomocą glmnet w R

13

Próbuję modelować niektóre dane przy użyciu glmnetpakietu w R. Załóżmy, że mam następujące dane

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)

(Jest to uproszczenie; moje dane są znacznie bardziej skomplikowane.) Następnie użyłem następującego kodu, aby utworzyć model 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)

Używam, standardize=FALSEponieważ moje rzeczywiste dane są już znormalizowane. Następnie chcę przewidzieć nowy zestaw danych. Powiedzmy, że moje nowe dane to:

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

Oczekiwałbym, że wyniki będą zawierać 4 elementy (przewidywania newdata), ale zamiast tego daje mi macierz 4x398. Co ja robię źle?

Benoit_Plante
źródło

Odpowiedzi:

14

Musisz określić, dla której wartości lambda chcesz przewidzieć odpowiedź. Wszystko, co musisz zrobić, to zadzwonić jak np .:

results <-predict(GLMnet_model_1, s=0.01, newx, type="response")
AlefSin
źródło