时间序列数据预测的类型

news2024/11/15 20:57:00

本文主要内容是使用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/360384.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用Hugo Academic Theme构建自己的github主页

前期条件 自己已经注册好GitHub 原文档:https://wowchemy.com/docs/getting-started/hugo-github-quickstart/ 搜索Hugo Academic Theme(网址) 进入后的网址为:https://academic-demo.netlify.app/ 点击Get Start 出现如下模板…

【观察】昇腾加速AI“走深向实”,打通落地“最后一公里”

毫无疑问,今天AI正与产业结合得越来越紧密,从智能制造,到智慧医疗,智慧金融、智慧城市等,AI已经开始渗透到我们生活的方方面面,即便是目前来自传统行业用户的AI转型需求尚未完全激活爆发,但仅仅…

利用组件注解符精简Spring配置文件

文章目录利用组件注解符精简Spring配置文件一、利用组件注解精简Spring配置文件1、创建新包2、将4个类给拷贝过去3、修改杀龙任务类4、修改救美任务类5、修改勇敢骑士类6、修改救美骑士类7、创建Spring配置文件利用组件注解符精简Spring配置文件 一、利用组件注解精简Spring配…

什么是生命周期?Activity生命周期的三种状态

什么是生命周期生命周期就是一个对象从创建到销毁的过程,每一个对象都有自己的生命周期。同样,Activity也具有相应的生命周期,Activity的生命周期中分为三种状态,分别是运行状态、暂停状态和停止状态。接下来将针对Activity生命周…

【自动化测试】自动化测试框架那些事儿

无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架。在教学的过程中,同学们一直对“框架”这个词知其然不知其所以然。 最近看了很多自动化相关的资料,加上一些实践,算是对“框架”有了一些理解…

JVM13 类的生命周期

1. 概述 在 Java 中数据类型分为基本数据类型和引用数据类型。基本数据类型由虚拟机预先定义,引用数据类型则需要进行类的加载。 按照 Java 虚拟机规范,从 class 文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期包…

本地代码推送到Coding

话不多说,开门见山 一、coding准备 注册啊,建项目,这些就不用多说了。 1.创建一个代码仓库 填一下名称和描述就行,其他先不用填,然后点最下面完成创建就行。 2.保存代码仓库地址 二、本地代码仓库准备 已经是在…

Linux 忘记密码解决方法

很多朋友经常会忘记Linux系统的root密码,linux系统忘记root密码的情况该怎么办呢?重新安装系统吗?当然不用!进入单用户模式更改一下root密码即可。 步骤如下: 重启linux系统 3 秒之内要按一下回车,出现如…

Web前端:什么是Vue Native 框架?有什么特点?

Vue Native是一个使用Vue.Js开发本地移动应用程序的框架。该框架将文档转换为React Native,进而为你提供适用于Android和iOS的本地应用程序。实际上,Vue Native应用程序据说是React API的包装。Vue将Vue.js和React结合在一起,让你的开发团队充…

【牛客刷题专栏】0x0C:JZ4 二维数组中的查找(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录前言问题…

Django框架之模板过滤器

过滤器 语法如下: 使用管道符号|来应用过滤器,用于进行计算、转换操作,可以使用在变量、标签中。如果过滤器需要参数,则使用冒号:传递参数。 变量|过滤器:参数列举几个如下: safe,禁用转义,告诉模板这个变…

大数据Hadoop教程-01大数据导论与Linux基础

目录 01、大数据导论 02、Linux操作系统概述 P007 P008 P009 P010 P011 P012 P013 P014 P015 P016 P017 01、大数据导论 企业数据分析方向 现状分析(分析当下的数据):现阶段的整体情况,各个部分的构成占比、发展、变…

C++空指针和野指针

空指针:指针被赋值为空 例如: int* p nullptr;int* p NULL; 空指针指向的地址是00000000,但空指针不可以解引用 野指针:指针指向了不可控的位置 例如: 未初始化 int* p; //野指针 越界访问 int intArr[5]{0, 1, …

Echarts+大屏

先放上我做的大屏吧,做的不是很好看,希望大家能见谅。 一、实验目的 理解大数据可视化的原理和方法掌握ECharts可视化的原理、步骤和效果掌握使用D3读取数据的方法 二、实验任务与要求 通过网店运营的销售数据,分别从各月的销售情况、各产品…

【1】linux命令每日分享——mkdir创建目录

大家好,这里是sdust-vrlab,Linux是一种免费使用和自由传播的类UNIX操作系统,Linux的基本思想有两点:一切都是文件;每个文件都有确定的用途;linux涉及到IT行业的方方面面,在我们日常的学习中&…

剑指offer-消失的数字、数组中出现的次数

消失的数字 解法一:求和相减 假设nums为[0,1,2,4],消失的数字为3,完整的数组应该是[0,1,2,3,4],则sum101247,sum20123410,我们很容易发现 sum2-sum1 01234 - 0124 3,即为消失的数字。因此,我们可以采用先…

国内有哪些值得一去的通信类博物馆?

众所周知,博物馆是收藏、展示和研究历史文物的地方。参观博物馆,既可以回顾历史往事,也可以学习知识。那么,作为通信人,你知道国内有哪些通信领域的博物馆吗?今天,就让小枣君给大家介绍介绍。█…

没有基础学习编程Python难学吗?

你听说过Python吗?如果是这样,你有没有想过它是否很难学习?在本文中,我将告诉您什么是 Python 以及为什么在 2023 年学习它是一个好主意。Python 是一种计算机编程语言,广泛用于 Web 开发、科学计算、数据分析、人工智…

ChatGPT的API接口的模型有多少种?这些模型都有什么功能或者在应用场景上有什么区别?【模型介绍使用与调用接口方法】

OpenAI 的 API 接口提供了多个 GPT-3 模型,每个模型针对不同的应用场景和任务进行了优化。以下是目前可用的 GPT-3 模型: davinci: 这是最大和最全面的模型,具有最高的准确性和灵活性,用于多种自然语言处理任务,如文本生成、对话系统、翻译等。 curie: 这个模型比 davin…

MySQL:想实现sql语句进行批量删除数据库或表,而引发的熬夜探究

因为在自测过程中,创建了很多数据库,一个个手动删除属实有点对不起程序员这个身份,那么有没有简单的sql语句操作来进行批量删除数据库呢?于是便有了本篇文章 上面图片是AI创作,未经允许,不可商用哦&#xf…