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

PyTorch-Forecasting中TimeSeriesDataSet分类变量顺序异常问题

PyTorch-Forecasting分类变量问题原因解析

1. categoricals乱序与目标变量不匹配

  • TimeSeriesDataSet在构建阶段,会自动按照**时间索引(time_idx)**和分组变量(如果配置了)对数据重新排序,确保每个时间序列的样本是连续的时间顺序。如果你的原始数据集不是严格按照「分组+时间递增」的规则排列,处理后的categoricals张量顺序就会和原数据中目标变量的顺序不匹配。
  • 同时,training.data是PyTorch的张量格式,它的顺序是基于数据集内部的滑动窗口采样逻辑组织的,和原始DataFrame的行顺序没有直接对应关系,视觉上就会呈现“乱序”的状态。

2. 小时列值变为0、1、12、17

  • 这是PyTorch-Forecasting对分类变量执行标签编码后的表现,但你看到的其实是数据中实际存在的小时唯一值,而非编码后的索引。如果你的数据集仅包含这几个小时的样本(比如只采集了这些时段的数据),处理后categoricals里就只会保留这些值。
  • 若你原本的小时列是0-23的全量值,那大概率是创建TimeSeriesDataSet时设置的时间窗口参数(如max_encoder_length、max_decoder_length)过滤掉了其他小时的样本,或是原始数据本身存在缺失,仅这几个小时有有效记录。
  • 补充:如果小时作为连续数值更符合业务逻辑,你可以将其移到time_varying_known_reals参数中,而非分类变量——但如果明确需要按分类处理,核心原因还是数据有效样本覆盖的小时仅为这几个。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:09:24