我正在尝试使用
tidymodels
运行时间序列交叉验证,并且一直在遵循 Tidy Modeling with R 章节 (https://www.tmwr.org/resampling#rolling)。
如有任何帮助,我们将不胜感激,谢谢!
当我运行以下代码时,我收到“警告消息:调整时使用了不止一组结果。这种情况永远不应该发生。检查如何在模型中指定结果。”
除了第一个
resamples$.metrics
之外,resamples$.predictions
和[[1]]
都是空的。
library(tidyverse)
library(tidymodels)
df <- data.frame(
year_month = seq(as.Date("2020-01-01"), as.Date("2024-03-01"), "month"),
value = sample(1:100, length(seq(as.Date("2020-01-01"), as.Date("2024-03-01"), "month")))
)
splits <- sliding_window(df, lookback = Inf, skip=23, assess_start = 1, assess_stop = 1, complete = T)
model_spec <- arima_reg() %>%
set_engine("auto_arima")
resamples <- fit_resamples(
object = model_spec,
preprocessor = recipe(value ~ year_month, splits$splits[[1]]),
resamples = splits,
control = control_resamples(save_pred = TRUE)
)
collect_metrics(resamples)
resamples %>%
select(id, .predictions) %>%
unnest(.predictions)
Posit 社区上的此帖子重复。 :) 引用那个答案:
我能够重现您在 CRAN 版本中看到的问题。但是,如果我通过运行 devtools::install_github("tidymodels/tune") 将我的调整版本更新到当前的开发版本(当前为 1.1.2.9021),然后重新启动 R,则有关 >1 结果的警告就会消失。该曲调版本将于本月底在 CRAN 上发布。
也就是说,这种方法仍然存在一些问题(请注意评估中的行数(splits$splits[[1]])和 show_notes(resamples) 中的消息),但我会让您从那里进行故障排除。