Прогнозы с использованием glmnet в R

13

Я пытаюсь смоделировать некоторые данные, используя glmnetпакет в R. Допустим, у меня есть следующие данные

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)

(Это упрощение; мои данные намного сложнее.) Затем я использовал следующий код для создания модели 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)

Я использую, standardize=FALSEпотому что мои реальные данные уже стандартизированы. Затем я хочу сделать прогноз на основе нового набора данных. Допустим, мои новые данные:

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

Я ожидал бы, что результаты будут содержать 4 элемента (предсказания newdata), но вместо этого он дает мне матрицу 4x398. Что я делаю неправильно?

Benoit_Plante
источник

Ответы:

14

Вам необходимо указать, для какого значения лямбда вы хотите предсказать ответ. Все, что вам нужно сделать, это позвонить, например, как:

results <-predict(GLMnet_model_1, s=0.01, newx, type="response")
AlefSin
источник