Я думаю, что в вашем 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)