You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

深度学习与全局时间序列模型(如DeepAR)中“sample”的准确定义是什么?

全局时间序列预测中“Sample”的定义困惑及对比分析

我正在学习用NN和LSTM开发全局时间序列预测模型,目前遇到一个核心问题:全局时间序列场景中“sample”的准确定义是什么?它与非序列数据或单变量时间序列场景下的“sample”定义有何区别?

非序列数据场景

我理解在此场景中,每个数据点(即数据框中的每一行)被称为一个“sample”。这些数据点可被划分为“batches”(即“mini-batches”的简称)。参数batch_size指定每个“(mini) batch”包含的数据点数量。训练时,一个周期内遍历整个数据集所需的批处理总数(即迭代次数)为:
每个周期的批处理数 = (样本数 / batch_size)=(数据集中的数据点总数 / batch_size)

单变量时间序列场景

在单变量时间序列建模场景中,“sample”的定义与参数sequence_length相关。相关技术讨论指出,时间序列场景中的“sample”并非时间序列中的单个数据点——单个数据点是一个“time step”。指定sequence_length后,时间序列可分解为一系列长度为sequence_length的重叠子序列,每个子序列即为一个“sample”。此时batch_size表示每次迭代选取的子序列数量。
每个周期的批处理数 = (时间序列生成的长度为sequence_length的子序列数量 / batch_size)

全局时间序列场景

全局时间序列建模场景下,数据集由一组相关的(目标)时间序列组成,每个(目标)时间序列可包含动态或静态的外生特征。目标是基于这组相关(目标)时间序列(及外生特征)训练单个模型,以实现对任意(目标)序列的预测。这引入了一个额外维度:数据集中(目标)时间序列的数量(即数据集的“data entries”数量)。

我推测batch_size仍指每次迭代抽取的“sample”数量,但不确定“sample”的定义是否会因该额外维度而改变。以下是三种可能的定义方向:

  • 可能性(A):“sample”是多序列结构。所有(目标)时间序列被分解为长度为sequence_length的子序列。单个“sample”由选取一个时间索引,同时提取每个(目标)序列中从该索引开始的子序列构成。该样本长度等于sequence_length,另一维度为数据集中(目标)序列的数量。假设所有(目标)序列长度相同,则:
    每个周期的批处理数 = (数据集中任意一个时间序列生成的长度为sequence_length的子序列数量 / batch_size)
  • 可能性(B):“sample”是单序列结构(与单变量场景一致),但样本来自多个序列且时间不协同,即每次迭代中可能并非所有(目标)序列都被包含,且迭代内的样本时间不对齐。
    每个周期的批处理数 = (整个数据集生成的长度为sequence_length的子序列数量 / batch_size)
  • 可能性(C):“sample”指数据集中的(目标)时间序列(即1个“sample”=1个“data entry”),而非(目标)序列内的子序列。此时,遍历整个数据集一个周期所需的批处理数为:
    每个周期的批处理数 = (数据集中(目标)时间序列的数量 / batch_size)

我已多方查阅资料(如GluonTS、Pytorch Lightning的文档和代码库等),但未找到直接明确的解答,相关术语的使用常默认读者已知其准确定义。

内容的提问来源于stack exchange,提问作者minidots

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:37:39