首页 > 解决方案 > 用套索回归预测函数

问题描述

我正在尝试为我的销售预测问题实施套索回归。我正在使用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要添加的参数来预测我也不知道的功能。我的意思是在大多数回归类型中,我们都有新数据或数据参数,我们将测试数据填充到它。

标签: rregression

解决方案


我认为你的 有一个错误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)

推荐阅读