本文主要内容是使用LSTM网络进行不同类型的时间序列预测任务,不涉及代码,仅仅就不同类型的预测任务和数据划分进行说明。
参考文章:https://machinelearningmastery.com/how-to-develop-lstm-models-for-time-series-forecasting/

注:所涉及的概念在数据案例会说明

时间序列数据预测本质就是利用先前的值预测后面的值,在得到一组数据后,需要将数据处理为一个个样本,每个样本中包括先前的数据和要预测的数据,将其作为训练集

1 单变量时间序列数据预测

单变量时间序列数据指的是,除了时间属性数据,只有单一属性的一组数据,比如2010一年间黄金的价格,按天统计,也就是一天一个数据。数据中只有价格这一个属性,共365个数据。
同时单变量也是指数据只有一个序列,一个变量也就是一个特征(feature)。

1.1 单步预测

单步预测中的单步是指一个时间步长(time step),比如上述黄金价格数据中,每一天就是一个时间步长,即在时间序列数据中每获取一次数据就是一个时间步。

单步预测就是仅仅预测一个时间步长的数据。

单变量时间序列数据的单步预测(单变量单步预测,Univariate Step):利于前边几个时间步长的数据预测下一个时间步长的数据

数据处理:

数据集dateset
[10, 20, 30, 40, 50, 60, 70, 80, 90]

上面的少量数据中,只是单一属性的一组数据。在进行预测前要将数据处理为样本(假设使用3个时间步长的数据预测下一个时间步长的数据),样本结构如下:
以下数据共有6个样本,每个样本中都是前三个时间步长的数据为一组作为输入,下一个时间步长的数据为另一组作为输出。

[10 20 30] 40
[20 30 40] 50
[30 40 50] 60
[40 50 60] 70
[50 60 70] 80
[60 70 80] 90即:输入            输出
[[10, 20, 30],      [40,
[20, 30, 40].       50,
……          ]           ]

使用这样的数据训练一个模型后,我们就可以使用前连续三个时间步长的数据预测下一个时间步长的数据。

最后我们在看一下样本中输入数据和输出数据的维度:
输入:两个维度,样本总数、用于预测的时间步长,这里分别是6、3
输出:一个维度,样本数量,这里是6

1.2 多步预测

单变量时间序列数据的多步预测(单变量多步预测,Univariate Multi-Step):利于前边几个时间步长的数据预测下面多个时间步长的数据。

本例:使用3个时间步长的数据预测后2个时间步长的数据,

数据处理:

数据集dateset
[10, 20, 30, 40, 50, 60, 70, 80, 90]

样本结构如下:
以下数据共有6个样本,每个样本中都是前三个时间步长的数据为一组作为输入,后两个时间步长的数据为另一组作为输出。

[10 20 30] [40 50]
[20 30 40] [50 60]
[30 40 50] [60 70]
[40 50 60] [70 80]
[50 60 70] [80 90]即:输入           输出
[[10, 20, 30],      [[40,50],
[20, 30, 40],       [50,60],
……]                 ……      ]说明:后面的输入输出也都是这样分析,只是不再表明输入输出和完整的数组结构。

使用这样的数据训练一个模型后,我们就可以使用前连续三个时间步长的数据预测下一个时间步长的数据。

使用这样的数据训练一个模型后,我们就可以使用前连续三个时间步长的数据预测下一个时间步长的数据。

输入数据和输出数据的维度:
输入:两个维度,样本总数、用于预测的时间步长,这里分别是6、3
输出:两个维度,样本数据、预测的时间步长,这里分别是6、2

2 多变量时间序列数据预测

多变量时间序列数据是指,除了时间属性外,还有多个属性或者说特征的一组数据。

2.1 单步预测

2.1.1 多变量预测

多时间变量数据的单步预测(多变量单步预测,Multivariate Input Series):利用前面的多个时间步的部分属性数据,预测下一个时间步的某个属性数据,与单变量不同,这里每个时间步都有多个数据。以上边电耗数据为例。一种预测方式是:使用三个时间步的平均电流、平均电压的数据,预测一个时间步平均功率。

数据集处理:

[[ 10  15  25][ 20  25  45][ 30  35  65][ 40  45  85][ 50  55 105][ 60  65 125][ 70  75 145][ 80  85 165][ 90  95 185]]

划分样本
以下数据共有6个样本,每个样本中都是前三个时间步长的数据是平均电流和平均电压作为输入,后一个时间步长的平均功率作为输出。

[[10 15][20 25][30 35]] 65
[[20 25][30 35][40 45]] 85
[[30 35][40 45][50 55]] 105
[[40 45][50 55][60 65]] 125
[[50 55][60 65][70 75]] 145
[[60 65][70 75][80 85]] 165
[[70 75][80 85][90 95]] 185

使用这样的方式可以利用前三个时间步的电流、电压数据,预测当前功率(只给电流、电压信息)。

输入数据和输出数据的维度:
输入:三个维度,样本总数、用于预测的时间步长、用于预测的特征数,这里分别是6、3、2
输出:两个维度,样本数据、预测的特征数,这里分别是6、1

2.1.2 并行预测 (全变量预测)

多变量时间序列数据单步并行预测(多变量单步并行预测,Multivariate Multi-Step Parallel Series):使用前面几个时间步的所有属性数据,预测下一个时间步的所有属性数据。以上面的电耗数据为例,使用前3个时间步的平均电流、平均电压、平均功率预测下一个时间的平均电流、平均电压、平均功率。

数据集:

[[ 10  15  25][ 20  25  45][ 30  35  65][ 40  45  85][ 50  55 105][ 60  65 125][ 70  75 145][ 80  85 165][ 90  95 185]]

样本处理:

[[10 15 25][20 25 45][30 35 65]] [40 45 85]
[[20 25 45][30 35 65][40 45 85]] [ 50  55 105]
[[ 30  35  65][ 40  45  85][ 50  55 105]] [ 60  65 125]
[[ 40  45  85][ 50  55 105][ 60  65 125]] [ 70  75 145]
[[ 50  55 105][ 60  65 125][ 70  75 145]] [ 80  85 165]
[[ 60  65 125][ 70  75 145][ 80  85 165]] [ 90  95 185]

使用这样的方式可以利用前三个时间步的电流、电压、功率数据,预测时预测后面1个时间步长的电流、电压、功率。

输入数据和输出数据的维度:
输入:三个维度,样本总数、用于预测的时间步长、用于预测的特征数,这里分别是6、3、3
输出:两个维度,样本数据、预测的特征数,这里分别是6、3

2.2 多步预测

2.2.1 多变量预测

多时间变量数据的多步预测(多变量多步预测,Multiple Input Multi-Step Output):利用前面的多个时间步的部分属性数据,预测后面多个时间步的某个属性数据。以上面的电耗数据为例,一中预测方式是,使用前3个时间步的平均电流、平均电压预测后面2个时间步长的平均功率。
数据集:

[[ 10  15  25][ 20  25  45][ 30  35  65][ 40  45  85][ 50  55 105][ 60  65 125][ 70  75 145][ 80  85 165][ 90  95 185]]

样本处理:

[[10 15][20 25][30 35]] [65 85]
[[20 25][30 35][40 45]] [ 85 105]
[[30 35][40 45][50 55]] [105 125]
[[40 45][50 55][60 65]] [125 145]
[[50 55][60 65][70 75]] [145 165]
[[60 65][70 75][80 85]] [165 185]

使用这样的方式可以利用前三个时间步的电流、电压数据,预测时预测后面2个时间步长的平均功率。

输入数据和输出数据的维度:
输入:三个维度,样本总数、用于预测的时间步长、用于预测的特征数,这里分别是6、3、2
输出:两个维度,样本数据、预测的时间步长,这里分别是6、2

2.2.2 并行预测 (全变量预测)

多变量时间序列数据的多步并行预测(多变量多步并行预测,Multiple Parallel Input and Multi-Step Output):使用前面几个时间步的所有属性数据,预测下一个时间步的所有属性数据。以上面的电耗数据为例,使用前3个时间步的平均电流、平均电压、平均功率预测后面多个时间的平均电流、平均电压、平均功率。

数据集:

[[ 10  15  25][ 20  25  45][ 30  35  65][ 40  45  85][ 50  55 105][ 60  65 125][ 70  75 145][ 80  85 165][ 90  95 185]]

样本处理:

(5, 3, 3) (5, 2, 3)[[10 15 25][20 25 45][30 35 65]] [[ 40  45  85][ 50  55 105]]
[[20 25 45][30 35 65][40 45 85]] [[ 50  55 105][ 60  65 125]]
[[ 30  35  65][ 40  45  85][ 50  55 105]] [[ 60  65 125][ 70  75 145]]
[[ 40  45  85][ 50  55 105][ 60  65 125]] [[ 70  75 145][ 80  85 165]]
[[ 50  55 105][ 60  65 125][ 70  75 145]] [[ 80  85 165][ 90  95 185]]

使用这样的方式可以利用前三个时间步的电流、电压、功率数据,预测时预测后面2个时间步长的电流、电压、功率。

输入数据和输出数据的维度:
输入:三个维度,样本总数、用于预测的时间步长、用于预测的特征数,这里分别是6、3、2
输出:三个维度,样本数据、预测的时间步长、预测的特征数,这里分别是6、2、3

时间序列数据预测的类型相关推荐

  1. keras时间序列数据预测_使用Keras的时间序列数据中的异常检测

    keras时间序列数据预测 Anomaly Detection in time series data provides e-commerce companies, finances the insi ...

  2. 时间序列预测 | Python实现LSTM多变量时间序列数据预测

    时间序列预测 | Python实现LSTM多变量时间序列数据预测 目录 时间序列预测 | Python实现LSTM多变量时间序列数据预测 基本介绍 程序设计 参考资料 基本介绍 时间序列分析(Time ...

  3. Keras之MLPR:利用MLPR算法(3to1【窗口法】+【Input(3)→(12+8)(relu)→O(mse)】)实现根据历史航空旅客数量数据集(时间序列数据)预测下月乘客数量问题

    Keras之MLPR:利用MLPR算法(3to1[窗口法]+[Input(3)→(12+8)(relu)→O(mse)])实现根据历史航空旅客数量数据集(时间序列数据)预测下月乘客数量问题 目录 输出 ...

  4. Keras之MLPR:利用MLPR算法(1to1+【Input(1)→8(relu)→O(mse)】)实现根据历史航空旅客数量数据集(时间序列数据)预测下月乘客数量问题

    Keras之MLPR:利用MLPR算法(1to1+[Input(1)→8(relu)→O(mse)])实现根据历史航空旅客数量数据集(时间序列数据)预测下月乘客数量问题 目录 输出结果 设计思路 实现 ...

  5. 【LSTM时间序列数据】基于matlab LSTM时间序列数据预测【含Matlab源码 1949期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[LSTM时间序列数据]基于matlab LSTM时间序列数据预测[含Matlab源码 1949期] 获取代码方式2: 付费专栏Matla ...

  6. 时间序列预测 | Python实现Transformer时间序列数据预测

    时间序列预测 | Python实现Transformer时间序列数据预测 目录 时间序列预测 | Python实现Transformer时间序列数据预测 基本介绍 Transformer设计 Tran ...

  7. 时间序列预测 | Python实现Prophet、ARIMA、LSTM时间序列数据预测

    时间序列预测 | Python实现Prophet.ARIMA.LSTM时间序列数据预测 目录 时间序列预测 | Python实现Prophet.ARIMA.LSTM时间序列数据预测 数据描述 特征工程 ...

  8. python时间序列数据预测教程之 arima

    最近接触时间序列较多,在借鉴很多人的知识之后,特此总结一下.目前关于时间序列数据分析预测大致有三种主流方法: 1.ARIMA系列方法 2.facebook开源的Prophet模型 3.LSTM时间序列 ...

  9. 机器学习实践笔记(三)时间序列数据预测

    时间序列模型 1.拿到数据咱们开始分析 2.Arima 硬性基础知识 Arima模型 AR MA ARMA ARIMA 如何选择p值和q值 自相关函数ACF 建立Arima模型 数据的确定 模型预测 ...

最新文章

  1. ROS Indigo下安装测试Xtion Pro
  2. 杂项:高考填报志愿综合参考系统
  3. android 进制转换
  4. how is sales pipeline retrieved from backend
  5. 用户体验可视化指南pdf_R中增强可视化的初学者指南
  6. 登录后 可编辑页面 php,如何查找和编辑登录的php页面以及更改详细信息 - WordPress - srcmini...
  7. 如何获取filecoin_【IPFSFilecoin】Filecoin矿机厂商排名?如何选择?哪家公司靠谱?...
  8. [导入]一个很有个性的网站??
  9. 【HNOI2003】【BZOJ1216】操作系统(模拟,优先队列)
  10. 软件质量应该如何保证?针对不同情况,项目各部门人员应如何保证软件质量?
  11. 将CCT色温转换成RGB
  12. 河南计算机对口升学题,河南省计算机对口升学专基模拟试题(四)[1]
  13. 富士康年轻工人现状调查:厌倦并依赖着-转自鲜果网
  14. OXY OPENCART 商城自适应主题模板 ABC-0020-01
  15. 联发科:心态决定未来走势
  16. 【FeatherNets】《FeatherNets:Convolutional Neural Networks as Light as Feather for Face Anti-spoofing》
  17. 【洛谷 P1970】 [NOIP2013 提高组] 花匠
  18. 基于网络爬虫的大学生就业数据分析与预测模型研究
  19. TraceId 搭配 ELK,碉堡了
  20. 渠道反作弊之常见行业手段

热门文章

  1. CRD500:NCO核生成时卡住问题
  2. 前后端结合实现Vue上传图片并预览效果【Node+Mysql+Vue+Express】
  3. 怎么进行缺陷管理,看完这篇文章,我终于明白了···
  4. R语言使用pgamma函数生成Gamma分布累积分布函数数据、使用plot函数可视化Gamma分布累积分布函数数据(Gamma Distribution)
  5. C#实现的调用Quartz.dll的定时任务插件
  6. 100天精通Python(可视化篇)——第82天:matplotlib绘制不同种类炫酷散点图参数说明+代码实战(二维散点图、三维散点图、散点图矩阵)
  7. float精度不够的情况
  8. 百度被判歌词搜索侵权
  9. 无法播放 请确保您计算机的,解决win10 groove无法播放并提示“0x8007007e”的方法...
  10. marquee 和JS 滚动效果