r - 用套索回归预测函数
问题描述
我正在尝试为我的销售预测问题实施套索回归。我正在使用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
要添加的参数来预测我也不知道的功能。我的意思是在大多数回归类型中,我们都有新数据或数据参数,我们将测试数据填充到它。
解决方案
我认为你的 有一个错误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)
推荐阅读
- python - Python Pandas 比较日期列,检查是否不为空,条件 > <= 逻辑,返回值
- animation - 假人墨水瓶
- python-3.x - 如何使用 matplotlib 在每小时图上以分钟精度绘制事件?
- oracle - 更新表后触发
- postman - 连接和十六进制 256sha 哈希签名
- python-3.x - 在 Python 中,查找未定义的全局变量时,是否可以动态生成值?
- neural-network - 将 FC 层实现为 Conv 层
- java - 使用提取方法快捷方式时 Java IDE 生成返回类型为 void 的方法的原因
- java - 未找到默认活动,运行应用程序时出错
- gradle - java 和 travis-ci、代码覆盖率和 gradle 的问题