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

Darts多协变量时间序列预测:多协变量传入报错及使用咨询

多协变量时间序列预测的Darts库使用问题

我跟着一份教程做多协变量时间序列预测,教程里用.stack()合并两个协变量,但不知道怎么用这个函数添加两个以上的协变量。我尝试了如下代码:

from darts.models import BlockRNNModel


my_covariate = (tg.sine_timeseries(length=LENGTH, 
                                value_frequency=(1/14), 
                                freq='D', 
                                column_name='my_covariate')
             + 0.4 * tg.gaussian_timeseries(length=LENGTH, freq='D'))


brnn_melting_and_rain = BlockRNNModel(input_chunk_length=30, 
                                      output_chunk_length=10, 
                                      n_rnn_layers=2)

brnn_melting_and_rain.fit(flow_train, 
                          # past_covariates=melting.stack(rainfalls).stack(rainfalls), 
                          past_covariates=[melting,rainfalls,my_covariate],
                          epochs=10, 
                          verbose=True)

eval_model(brnn_melting_and_rain, 
           past_covariates=melting.stack(rainfalls))

运行后出现如下错误:

ValueError: The provided sequence of target series must have the same length as the provided sequence of covariate series.

我查阅了Darts文档,但未找到关于past_covariates的明确使用指引,包括应传入的数据类型及其他要求。


解决方法

  1. 协变量的正确传入方式
    past_covariates需要传入单个多变量TimeSeries对象,而非列表。合并多个协变量有两种方式:

    • 链式调用.stack():
      combined_covariates = melting.stack(rainfalls).stack(my_covariate)
      
    • 使用TimeSeries.stack()一次性合并多个序列:
      combined_covariates = TimeSeries.stack([melting, rainfalls, my_covariate])
      
  2. 对齐序列长度与时间范围
    报错的核心原因是协变量序列和目标序列(flow_train)的长度或时间范围不匹配。可以通过以下方式检查:

    • 用len(flow_train)、len(melting)等分别查看各序列长度
    • 用series.start_time和series.end_time确认所有序列的时间区间完全重合
  3. 训练与评估的协变量保持一致
    评估模型时,需要传入和训练时相同的合并后协变量,不能只传两个,否则会因输入维度不匹配报错:

    eval_model(brnn_melting_and_rain, past_covariates=combined_covariates)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:42:56