时序数据的预测

文章目录

  • 一、时间序列分割TimeSeriesSplit
    • 1、TimeSeriesSplit的分割数据集的原理
    • 2、girdsearchcv和时序数据结合
  • 二、时间序列预测需要注意的问题
    • 1、传统时序建模的方法:
    • 2、现代预测方法
    • 3、注意问题
      • 3.1 概念漂移
      • 3.2 序列的自相关性
      • 3.3 训练集和测试集的划分
      • 3.4 时间序列基本规则法-周期因子
      • 3.5 利用时间特征做线性回归
      • 其它

一、时间序列分割TimeSeriesSplit

1、TimeSeriesSplit的分割数据集的原理

TimeSeriesSplit是k-fold的一个变体,它首先返回k折作为训练数据集,并且 (k+1) 折作为测试数据集。请注意,与标准的交叉验证方法不同,连续的训练集是超越前者的超集。另外,它将所有的剩余数据添加到第一个训练分区,它总是用来训练模型。这个类可以用来交叉验证以固定时间间隔观察到的时间序列数据样本。(机器学习中的交叉验证
)
示例:
时序数据的预测_第1张图片
据我观测,它是像下图这样子分的。
时序数据的预测_第2张图片

机器学习中时间序列数据的训练集、验证集、测试集处理问题

2、girdsearchcv和时序数据结合

若用girdsearchcv进行调参,怎么将交叉验证的cv设置为时间序列的

 	my_cv = TimeSeriesSplit(n_splits=2).split(x_train)
    cv_params = {'min_child_weight': [1,2,3,4,5,6,7]}
    other_params = {'learning_rate': 0.1, 'n_estimators': 1000, 'max_depth': 4, 'min_child_weight': 2, 'seed': 0,
                    'subsample': 0.8, 'colsample_bytree':2\ 0.9, 'gamma': 0, 'reg_alpha': 0.1, 'reg_lambda': 2}
    model = XGBRegressor(**other_params)
    optimized_GBM = GridSearchCV(estimator=model, param_grid=cv_params, scoring='r2', cv=my_cv, verbose=1, n_jobs=4)
    optimized_GBM.fit(np.array(x_train), np.array(y_train))
    model = optimized_GBM.best_estimator_

时间序列分割TimeSeriesSplit

二、时间序列预测需要注意的问题

1、传统时序建模的方法:

  • AR
  • MA
  • ARMA

2、现代预测方法

在这里插入图片描述

3、注意问题

时间序列预测方法总结

3.1 概念漂移

在这里插入图片描述

3.2 序列的自相关性

时序数据的预测_第3张图片

3.3 训练集和测试集的划分

参考一。
在这里插入图片描述

3.4 时间序列基本规则法-周期因子

时序数据的预测_第4张图片

3.5 利用时间特征做线性回归

时序数据的预测_第5张图片

其它

时序数据的预测_第6张图片

你可能感兴趣的:(机器学习和深度学习,机器学习,深度学习,人工智能)