在R中使用glmnet进行预测


13

我正在尝试使用glmnetR中的包对一些数据进行建模。假设我有以下数据

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矩阵。我究竟做错了什么?

Answers:


14

您需要指定要预测其响应的lambda值。您需要做的就是像这样打电话:

results <-predict(GLMnet_model_1, s=0.01, newx, type="response")
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.