用套索回归预测功能

时间:2019-03-18 08:28:29

标签: r regression

我正在尝试对我的销售预测问题实施套索回归。我正在使用glmnet包和cv.glmnet函数来训练模型。

library(glmnet)
set.seed(123)
model = cv.glmnet(as.matrix(x = train[, -which(names(train) %in% "Sales")]),
                  y = train$Sales,
                  alpha = 1,
                  lambda = 10^seq(4,-1,-0.1))
best_lambda = model$lambda.min
lasso_predictions_valid <- predict(model,s = best_lambda,type = "coefficients")

在阅读了有关实现套索回归的几篇文章之后,我仍然不知道如何添加要应用预测的测试数据。还有newx个参数要添加到我也不知道的预测函数中。我的意思是,在大多数回归类型中,我们都有newdata或data参数,可以将测试数据填充到其中。

1 个答案:

答案 0 :(得分:0)

我认为您的lasso_predictions_valid中存在错误,您不应该将valid$sales用作newx,因为我相信这是实际的销售数量。

一旦使用训练集创建了模型,那么对于newx,您需要传递要进行预测的x的矩阵值,在这种情况下,我想它将是您的验证集。

查看上面的示例代码,我认为您的predict行应类似于:

lasso_predictions_valid <- predict(model, s = best_lambda, 
                                   newx = as.matrix(valid[, -which(names(valid) %in% "Sales")]), 
                                   type = "coefficients")

然后您应该运行RMSE()行:

RMSE(lasso_predictions_valid, valid$Sales)