
TimesFM 2.5 XReg 协变量预测实战三步跑通示例看懂 4 类协变量与 2 种模式【免费下载链接】timesfmTimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Google Research for time-series forecasting.项目地址: https://gitcode.com/GitHub_Trending/ti/timesfmTimesFM 2.5 的 XReg 协变量能力可以把价格、促销、气温这类外生变量带进时间序列预测。下面走通最短路径安装、数据组织、首次调用forecast_with_covariates以及常见报错的自查方法。使用场景零售销量预测未来几周的价格计划、促销日历、节假日排期是已知信息。仓库自带示例就是这种结构3 家门店24 周历史预测 12 周价格作动态数值协变量促销/节假日作动态分类协变量门店档次作静态分类协变量。电力等需求预测气温预报、发电计划这类未来值已知的变量适合做动态协变量实时负载这类未来取不到值的变量则不要放进协变量。概念速览XReg 与 4 类协变量XReg交叉回归此处为 in-context regression即只对当前输入做拟合的线性模型负责建模目标 ~ 协变量的线性部分TimesFM 负责预测线性模型没吃掉的残差。forecast_with_covariates接受 4 类协变量形状各不相同类型参数形状要求示例动态数值dynamic_numerical_covariates每条序列长度 context horizon价格动态分类dynamic_categorical_covariates每条序列长度 context horizon促销 0/1静态数值static_numerical_covariates每条序列 1 个值基础售价静态分类static_categorical_covariates每条序列 1 个值门店档次这张图由仓库示例脚本生成左侧展示销量与基线的差异右下展示各协变量对销量的效果分解价格曲线则横跨上下文 预测期整段直观说明动态协变量必须覆盖未来时段。快速上手从安装到首次预测三步走第一步安装 torch 后端与 XReg 依赖xregextra 会带上 jax 和 scikit-learn见 pyproject.tomlpip install timesfm[torch] pip install timesfm[xreg]第二步加载 2.5 的 200M 模型并编译注意协变量接口要求return_backcastTrueimport timesfm model timesfm.TimesFM_2p5_200M_torch.from_pretrained(google/timesfm-2.5-200m-pytorch) model.compile(timesfm.ForecastConfig( max_context1024, # 上下文长度 max_horizon12, # 最大预测步长 return_backcastTrue, # XReg 硬性要求 ))第三步发起首次协变量预测。示例中 24 周上下文 12 周 horizon动态协变量每条序列给足 36 个点point, quantiles model.forecast_with_covariates( inputs[sales_a, sales_b], # 2 条目标序列 dynamic_numerical_covariates{price: [price_a, price_b]}, dynamic_categorical_covariates{promo: [promo_a, promo_b]}, static_categorical_covariates{store_type: [premium, standard]}, xreg_modexreg timesfm, ) # point: (2, 12) 点预测quantiles: (2, 12, 10) 分位数预测核心机制详解XReg 的切分、模式与线性参数输入如何被切成 train 与 test对每条动态协变量代码以对应目标序列的长度为界做切分timesfm_2p5_base.py 第 312-319 行段切片长度约束train上下文段cov[input_len - train_len : input_len]与目标的训练段等长test预测段cov[input_len :]决定实际 horizon且必须 ≤max_horizon由此有两条硬规则动态协变量的未来段长度直接决定本次预测步长同类型的 train/test 动态协变量必须成对出现且 key 集合完全一致。xreg_mode线性模型与 TimesFM 的两种组合xreg_mode默认xreg timesfm两种模式的执行顺序恰好相反xreg timesfm默认timesfm xreg第 1 步XReg 拟合 目标 ~ 协变量TimesFM 出基线预测与 backcast第 2 步TimesFM 预测残差XReg 拟合 TimesFM 残差线性训练范围完整上下文上下文去掉首个 patch32 点线性系数用途解释主信号修正基线未解释的部分线性模型参数逐项说明线性模型用伪逆解析求解xx ridge·I可调参数集中在一个参数组里参数默认值行为ridge0.00 为普通最小二乘0 时 one-hot 编码从dropfirst切换为不丢列normalize_xreg_target_per_inputTrue拟合前按序列 z 归一化目标输出后再反归一化max_rows_per_col00 时对训练矩阵按列子采样以加速拟合随机种子固定 42force_on_cpuFalse强制线性求解器跑在 CPU规避加速器精度问题数值型协变量还会先做标准化分类协变量走OneHotEncoder未知类别按handle_unknownignore处理逻辑在 xreg_lib.py。方案对比三种配置怎么选维度纯forecast()xreg timesfm默认timesfm xreg额外配置无需return_backcastTrue需return_backcastTrue模型看到的信息仅目标历史目标 4 类协变量目标 4 类协变量线性模型分工无解释主信号TimesFM 补残差修正 TimesFM 基线的残差输出构成点预测 分位数点/分位数 线性贡献 TimesFM 贡献点/分位数 TimesFM 贡献 线性贡献适合无已知外生信息协变量与目标近似线性相关价格-销量主趋势复杂、协变量只修正局部v1 的扩展基准里带协变量的 cov-signal 数据集上 TimesFM 的 MASE 为 1.017是同行基线中最低的一个拿不准时先用默认模式再切另一种模式对比点预测误差取低者。问题自检协变量预测的常见报错现象原因解法For XReg, return_backcast must be set to True编译时return_backcast用了默认值 False带return_backcastTrue重新compileFailed to load the XReg module未安装 xreg 依赖jax、scikit-learnpip install timesfm[xreg]At least one of ... must be set4 类协变量参数全为空至少传入 1 类协变量horizon length inferred from the dynamic covariates is longer than max_horizon动态协变量未来段超过max_horizon加大max_horizon或截短协变量must be both present or both absent动态协变量只提供了 train 或 test 一侧两侧成对补齐key 保持一致targets[i] has length N ! expected M协变量长度与目标序列长度不齐动态协变量对齐为 context horizon推理明显变慢分类协变量用了字符串取值改为数值编码1、2、3…forecast_with_covariates的价值在于不重训模型把未来已知的信息直接变成预测输入。建议先跑通仓库的零售示例感受数据形状再按模式取舍调参。完整示例demo_covariates.py参数清单api_reference.md【免费下载链接】timesfmTimesFM (Time Series Foundation Model) is a pretrained time-series foundation model developed by Google Research for time-series forecasting.项目地址: https://gitcode.com/GitHub_Trending/ti/timesfm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考