【问题标题】:R forecastML package keeps renaming outcome columnsR forecastML 包不断重命名结果列
【发布时间】:2020-06-09 09:28:12
【问题描述】:

我正在尝试使用预测 ML r 包来运行一些测试,但是当我点击这一步时,它会重命名列

data <- read.csv("C:\\Users\\User\\Desktop\\DG ST Forecast\\LassoTemporalForecast.csv", header=TRUE)
date_frequency <- "1 week"
dates <- seq(as.Date("2012-10-05"), as.Date("2020-10-05"), by = date_frequency)
data_train <- data[1:357,]
data_test <- data[358:429,]

outcome_col <- 1  # The column index of our DriversKilled outcome.

horizons <- c(1,2,3,4,5,6,7,8,9,10,11,12)  # 4 models that forecast 1, 1:3, 1:6, and 1:12 time steps ahead.

# A lookback across select time steps in the past. Feature lags 1 through 9, for instance, will be 
# silently dropped from the 12-step-ahead model.
lookback <- c(1)

# A non-lagged feature that changes through time whose value we either know (e.g., month) or whose 
# value we would like to forecast.
dynamic_features <- colnames(data_train)

data_list <- forecastML::create_lagged_df(data_train,
                                          type = "train",
                                          outcome_col = 1,
                                          horizons = horizons,
                                          lookback = lookback,
                                          date = dates[1:nrow(data_train)],
                                          frequency = date_frequency,
                                          dynamic_features = colnames(data_train)
)

data_list 之后,下面是控制台中发生的情况的快照:

接下来,当我尝试在名称更改后创建窗口时,

windows <- forecastML::create_windows(lagged_df = data_list, window_length = 36, 
                                      window_start = NULL, window_stop = NULL,
                                      include_partial_window = TRUE)
plot(windows, data_list, show_labels = TRUE)

此错误:无法对不存在的列进行子集化。 x 列 cases 不存在。

之前根据输入的数据和代码查了很多遍还是不明白为什么会出现改名,如果有熟悉这个包的请帮忙,谢谢!

【问题讨论】:

    标签: r package forecast


    【解决方案1】:

    我是包作者。如果没有可重现的例子,很难说清楚,但我认为是这样的:动态特征本质上是滞后为 0 的特征。动态特征也保留其原始名称,而不是滞后特征附加“_lag_n”到功能名称。因此,通过将dynamic_features 设置为所有列名,您将获得专门针对结果列的重复列。我的猜测是“案例”是这里的结果。通过删除 dynamic_features = colnames(data_train) 并将其设置为仅那些您真正希望延迟为 0 的功能来解决此问题。

    【讨论】:

      猜你喜欢
      • 2021-11-29
      • 1970-01-01
      • 2017-03-06
      • 2022-08-08
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      • 2019-08-04
      • 2019-05-01
      相关资源
      最近更新 更多