如何解决Modeltime.resample - 为什么 modeltime_fit_resamples() 不接受“未拟合的”modeltime_table 作为输入?
我在这里的主要目标是更好地理解使用 modeltime_fit_resamples() 而不是传统的 fit_resamples() 做事方式的优势。
与fit_resamples()函数不同,modeltime_fit_resamples的输入 必须是一个合适的“Modeltime Table”,这听起来像是在浪费资源。如果此函数不使用该信息,为什么要在运行 modeltime_fit_resamples() 之前拟合模型?也许这是一个愚蠢的问题,所以我提前道歉。
以下可重现的示例:
library(modeltime)
library(modeltime.resample)
library(tidyverse)
library(timetk)
library(earth)
# Set Up Model Workflow and Workflow fit ----
model_spec_mars <- mars(mode = "regression") %>%
set_engine("earth")
recipe_spec <- recipe(value ~ date,data = training(splits)) %>%
step_date(date,features = "month",ordinal = FALSE) %>%
step_mutate(date_num = as.numeric(date)) %>%
step_normalize(date_num) %>%
step_rm(date)
#Workflow
wflw_mars <- workflow() %>%
add_recipe(recipe_spec) %>%
add_model(model_spec_mars)
#Fitted Workflow
splits <- initial_time_split(m750,prop = 0.9)
wflw_mars_fit <- wflw_mars %>%
fit(training(splits))
# Resamples --------
resamples_tscv <- time_series_cv(
data = m750,assess = "2 years",initial = "5 years",skip = "2 years",slice_limit = 4
)
resamples_tscv
# fit_resamples Example --------
fit_output <-
wflw_mars %>%
fit_resamples(
resamples_tscv,control=control_resamples(verbose=T,save_pred=T)
)
# modeltime_fit_resamples (does not work )--------
fit_output <-
wflw_mars %>%
modeltime_table() %>%
modeltime_fit_resamples(
resamples_tscv,save_pred=T)
)
# modeltime_fit_resamples ( Works )--------
wflw_mars %>%
fit(training(splits)) %>%
modeltime_table() %>%
modeltime_fit_resamples(
resamples_tscv,save_pred=T)
)
#it works,but why would I fit the model if modeltime_fit_resamples does not use that information ?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。