时间序列预测(十七)——滑动窗口的使用

这里只是对滑动窗口在时间序列预测中使用做一个分析总结,关于滑动窗口的详细介绍可以参考其他博文。

滑动窗口是一种常用的技术,它通过使用固定大小的窗口来创建训练样本,以便捕捉时间序列中的模式。适用于多种时间序列模型,包括 LSTM、GRU 和其他类型的递归神经网络(RNN),因为这些模型能够处理输入的时间依赖性。

注意:在使用滑动窗口生成训练样本之前,通常需要对数据进行标准化或归一化,以提高模型的收敛速度和预测准确性。输出预测结果时也要反归一化。

一、概念

这里会涉及到两个概念:

1、窗口大小(Window Size)

定义:窗口大小是指在每个样本中包含的时间步数。

窗口大小决定了模型在每次预测时可以参考的历史数据的长度(这里是针对特征来说,也可以用于标签)。

较大的窗口大小可以捕捉更长时间范围内的趋势和模式,但可能会引入更多噪声,导致模型更难学习有效特征。

较小的窗口大小则可能会忽略重要的长期依赖关系,但有助于提高模型对短期波动的响应能力。

2、步长(Step Size)

定义:步长是窗口在时间序列上每次移动的时间步数。通常为一个时间步长。

较小的步长(例如,1)会导致生成更多的训练样本,从而增加模型的训练数据量。这可以提高模型的鲁棒性,但也会增加训练时间。

较大的步长会减少训练样本的数量,可能会导致模型对数据的学习不够全面,但训练速度会加快。

因此,在使用滑动窗口的时候,要合理地选择窗口大小和步长,需要平衡样本数量、模型的学习能力和训练时间。理想情况下,应选择能有效捕捉时间序列特征的窗口大小和适当的步长,以实现最佳性能。

二、窗口大小、步长与可用样本数量的关系

可用样本数量是指在给定的时间序列数据中,使用滑动窗口技术生成的样本的总数

假设:

  • N:时间序列的总长度(数据点数量)
  • W:窗口大小(每个样本包含的时间步数)
  • S:步长(窗口每次移动的时间步数)

可用样本数量的计算公式为:

注意:使用向下取整(⌊⋅⌋),确保样本数量是一个整数,且在数据不够时不会超出边界。

三、实例分析

前提:对于时间序列预测模型,假如整个数据集有100组数据,按8:2分成训练集和测试集,窗口大小 W=4 步长 S=2

下面是分析:

1、数据集划分
  • 总数据点数 N=100N = 100N=100
  • 训练集数据点数 Ntrain=80(80%)
  • 测试集数据点数 Ntest=20(20%)
2、计算可用样本数量

(1)训练集

(2)测试集

3、确定特征组和标签组数量

如果此时认为训练集和测试集中各自的特征和标签组数量与可用样本数量相同,那就错了!!

在时间序列预测中,特征组和标签组是紧密关联的,每个特征组都对应一个标签组, 特征组数量和标签组数量应相同。

对于时间序列预测模型,特征和标签是错开的。每个特征样本对应一个标签,而标签通常是特征组对应的下一个时间步的数据。如果特征组数量与可用样本数量相同,那么最后一组特征组就没有标签组对应,因此,特征和标签的组数量应与可用样本数量有所不同

为了尽可能多的利用样本数据,最终:

特征组数量=标签组数量=可用样本数量-1

(1)训练集

特征组数量:38(39-1)

标签组数量:38

(2)测试集

特征组数量:8(9-1)

标签组数量:8

最后,提取特征组和标签组

  • 第一组

    • 特征组:[x1,x2,x3,x4] → 标签 [x5,x6]
  • 第二组

    • 特征组:[x3,x4,x5,x6] → 标签 [x7,x8]
  • 第三组

    • 特征组:[x5,x6,x7,x8] → 标签 [x9,x10]
  • 第四组

    • 特征组:[x7,x8,x9,x10]→ 标签 [x11,x12]

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

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

相关文章

git远程和本地创建分支并关联

1.github创建dev分支 点击branches: 创建一个新分支,可以命名为dev 在vscode创建新分支dev 如果远程dev分支在这没有表现出来 在终端执行:git fetch --all 然后手动切换(签出/checkout)到dev分支,使用如下命令让…

病床呼叫器设计仿真与实物制作

某医院有编号为1~9号的9个病房,现利用数字电路,设计并制作病房呼叫系统,要求系统功能如下: (1)病房 ①呼叫功能:每个病房都装有1个呼叫按钮,在病人需要时,可以通过呼叫…

基于Linux中Qt开发的广告机

一、实训目的 1. 掌握Qt开发环境:通过学习和实践,学习如何搭建Qt开发环境,熟悉Qt的基本使用方法,掌握Qt的应用技术; 2. 界面设计与框架:了解Qt的界面布局、整体设计思路以及框架解析,学会构建一…

设计一个灵活的RPC架构

RPC架构 RPC本质上就是一个远程调用,需要通过网络来传输数据。传输协议可以有多种选择,但考虑到可靠性,一般默认采用TCP协议。为了屏蔽网络传输的复杂性,需要封装一个单独的数据传输模块用来收发二进制数据,这个单独模…

Leetcode 64. 最小路径和 动态规划+空间优化

原题链接&#xff1a;Leetcode 64. 最小路径和 二维数据 class Solution { public:int minPathSum(vector<vector<int>>& grid) {int m grid.size();int n grid[0].size();int dp[m][n];dp[0][0] grid[0][0];for (int j 1; j < n; j)dp[0][j] dp[0][…

qt QMenu详解

1、概述 QMenu是Qt框架中的一个类&#xff0c;用于创建和管理菜单。它提供了丰富的接口来添加菜单项&#xff08;通常是QAction对象&#xff09;、子菜单以及分隔符。QMenu可以嵌入到菜单栏&#xff08;QMenuBar&#xff09;中&#xff0c;也可以作为弹出菜单&#xff08;通过…

Android——Activity生命周期

Activity生命周期 onCreate&#xff1a;创建活动。把页面布局加载进内存&#xff0c;君如了初始状态。onStart&#xff1a;开始活动。把活动页面显示在屏幕上&#xff0c;进入了就绪状态。onResume&#xff1a;恢复活动。活动页面进入活跃状态&#xff0c;能够与用户正常交互&…

02- 模块化编程-004 DB18B20温度数码显示

1、DB18B20采样与显示电路 2、DB18B20简介 DS18B20是一款高精度的单总线数字温度传感器&#xff0c;适用于多种温度测量场合。 温度范围&#xff1a;-55℃至125℃精度&#xff1a;可编程设定9至12位分辨率&#xff0c;对应温度分辨率0.5℃、0.25℃、0.125℃、0.0625℃通信&am…

[241102] Fedora Linux 41 正式发布 | Wasmer 5.0 发布

目录 Fedora Linux 41 正式发布Wasmer 5.0 发布 Fedora Linux 41 正式发布 主要更新&#xff1a; DNF 5: 更快、更小、依赖更少&#xff0c;统一了容器、服务器、桌面和设备的包管理体验。桌面更新&#xff1a; Fedora Workstation 41 基于 GNOME 47&#xff0c;默认终端改为…

C++继承

文章目录 一、继承的概念和定义1、继承的概念2、继承的定义3、继承基类成员访问方式的变化 二、基类和派生类之间的转换三、继承中的作用域1、隐藏规则 四、派生类的默认成员函数1、常见默认成员函数2、实现一个不能被继承的类 五、继承与友元六、继承与静态成员变量七、多继承…

嵌入式linux系统中串口驱动框架分析

大家好,今天主要给大家分享一下,如何使用linux系统中的串口实现。 第一:串口基本简介 串口是很常见的一个外设,在Linux下通常通过串口和其他设备或传感器进行通信。根据电平的不同,串口可以分为TTL和RS232。不管是什么样的电平接口,驱动程序是一样的。 第二:Linux下UAR…

秋日盛景,北京马拉松万人齐跑,秀域人工智能理疗获好评无数

在金秋送爽的北京&#xff0c;一场全民瞩目的体育盛事——北京马拉松顺利开跑&#xff0c;再次点燃了这座城市的运动激情。各地跑者齐聚双奥之城&#xff0c;共同奔赴在秋日美景之中。      回首往昔&#xff0c;1981年9月27日&#xff0c;首届北京马拉松赛的举办&#xff…

Java-I/O框架09:InputStreamReader、OutputStreamWriter使用

视频链接&#xff1a;16.24 转换流的使用_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Tz4y1X7H7?spm_id_from333.788.videopod.episodes&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5&p24 1.InputStreamReader使用 package com.yundait.Demo05;import java…

JavaScript语法基础(JS使用方式, 输出方式, 变量,数据类型,运算符,程序控制语句)

目录 JS概念 一.JS使用方式 &#xff08;1&#xff09;行内式 &#xff08;2&#xff09;内嵌式 &#xff08;3&#xff09;外链式 二.JS输出方式 三.基本语法 1.变量 &#xff08;1&#xff09;变量的命名 &#xff08;2&#xff09;变量的声明 &#xff08;3&#xf…

NPOI 操作详解(操作Excel)

目录 1. 安装 NPOI 2. 使用 NPOI 创建新 Excel 文件 3. 设置列宽和行高 1. 设置列宽 2. 设置行高 3. 同时设置列宽和行高 4. 设置统一的行高 5. 设置统一的列宽 6. 应用统一的行高和列宽 4. 合并单元格 5. 设置单元格样式&#xff08;字体、边框、背景色等&#xf…

codigger体验过程记录

一、codigger的介绍 codigger是一款分布式操作系统&#xff0c;主要是便于进行个人移动化办公、在线协同办公、开发和娱乐的私人应用。 收到codigger开发者朋友的邀请&#xff0c;于是进行了这款产品的升级体验&#xff0c;接下来就简单介绍一下自己的体验过程吧。 二、登录系…

使用labelme中的AI模型提升数据标注速度

1、打开labelme 2、选择AI模型 选择之后&#xff0c;会自动进行模型下载&#xff0c;推荐开梯子&#xff0c;否则可能下载失败&#xff0c;最小的EfficientSam 在30M左右 3、右键选择AI多边形&#xff08;分割&#xff09;或AI蒙版&#xff08;目标检测&#xff09;&#xf…

全双工通信协议WebSocket——使用WebSocket实现智能学习助手/聊天室功能

一.什么是WebSocket&#xff1f; WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器的全双工通信——浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c;并进行双向数据传输 HTTP 协议是一种无状态的、无连接的、单向的应用…

音乐网站新篇章:SpringBoot Web实现

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

【初阶数据结构篇】链式结构二叉树(二叉链)的实现(感受递归暴力美学)

文章目录 须知 &#x1f4ac; 欢迎讨论&#xff1a;如果你在学习过程中有任何问题或想法&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习。你的支持是我继续创作的动力&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;觉得这篇文章对你有帮助吗&#xff1…