关于时间序列训练集与验证集的构建

将时间序列预测问题处理成标准的分类与回归问题进行处理,在划分训练集与测试集时不能够随机划分,因为在构造样本时选取的时间步长一般很短,那么某些样本之间的差异会很小,如果随机划分会导致验证集的结果过于乐观。

时间序列数据交叉验证的方式一般有两种:
(1)如果时间序列数据存在明显的趋势或者周期性的话,一般采用forward chain方法,如下所示:
在这里插入图片描述
但是这种方法其实也存在问题,因为每次交叉训练集的大小都不一样,可能使最终的泛化误差依赖于样本大小。

为了使每次交叉验证时训练集的样本都一样,可以采用如下方式:
train[1,2], test[3]
train[2,3], test[4]
train[3,4],test[5]
train[4,5],test[6]

(2) 如果时间序列数据沿着时间轴没有明显的周期和趋势的话,即该时间序列是稳态的,那么其实是可以使用hv交叉验证方法的,如下:
在这里插入图片描述

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。 首先,针对时间序列预测,常见的神经网络模型包括BP神经网络、RNN、LSTM等。本次我们以BP神经网络为例,来讲解如何进行时间序列预测。 其次,划分训练集验证集是为了评估模型的泛化能力。一般来说,我们将数据按照时间顺序分为训练集测试集训练集用来训练模型,测试集用来验证模型的泛化能力。在训练集中,我们还可以随机选取一部分数据作为验证集,用来调整模型的超参数,比如学习率、迭代次数等。 最后,对于样本外数据预测,我们可以使用训练好的模型来进行预测。预测时,需要将输入数据进行归一化处理,然后输入到模型中进行预测。预测结果需要进行反归一化处理,得到真实的预测值。 以下是一个简单的R代码示例,实现了时间序列的BP神经网络预测,并且进行了训练集验证集划分,以及模型精度的评估和样本外数据的预测。代码中使用了forecast包中的auto.arima函数来进行时间序列预测。 ```R library(neuralnet) library(forecast) # 读取数据 data <- read.csv("data.csv") data <- ts(data$y, frequency = 12, start = c(2010, 1)) # 划分训练集验证集 train <- window(data, end = c(2017, 12)) valid <- window(data, start = c(2018, 1)) # 归一化处理 train_norm <- (train - min(train)) / (max(train) - min(train)) valid_norm <- (valid - min(valid)) / (max(valid) - min(valid)) # 构建BP神经网络模型 model <- neuralnet(y ~ lag(y, 1) + lag(y, 2) + lag(y, 3), data = train_norm, hidden = 5) # 预测验证集 pred <- predict(model, valid_norm) pred <- pred * (max(train) - min(train)) + min(train) # 计算均方误差 mse <- mean((pred - valid)^2) cat("MSE:", mse, "\n") # 样本外数据预测 new_data <- window(data, start = c(2019, 1)) new_norm <- (new_data - min(data)) / (max(data) - min(data)) new_pred <- predict(model, new_norm) new_pred <- new_pred * (max(data) - min(data)) + min(data) cat("Predicted values for 2019:\n") print(new_pred) ``` 希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值