时间序列交叉验证警告(tidymodels、fit_resamples)

问题描述 投票:0回答:1

我正在尝试使用

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)
r time-series cross-validation resampling tidymodels
1个回答
0
投票

Posit 社区上的此帖子重复。 :) 引用那个答案:

我能够重现您在 CRAN 版本中看到的问题。但是,如果我通过运行 devtools::install_github("tidymodels/tune") 将我的调整版本更新到当前的开发版本(当前为 1.1.2.9021),然后重新启动 R,则有关 >1 结果的警告就会消失。该曲调版本将于本月底在 CRAN 上发布。

也就是说,这种方法仍然存在一些问题(请注意评估中的行数(splits$splits[[1]])和 show_notes(resamples) 中的消息),但我会让您从那里进行故障排除。

© www.soinside.com 2019 - 2024. All rights reserved.