如何将许多特征合并到 TensorFlow 概率结构时间序列中

mag*_*ale 5 python time-series linear-regression tensorflow tensorflow-probability

我想知道如何训练多元贝叶斯结构时间序列 (BSTS) 模型,该模型使用 Tensorflow Probability 自动对数百个输入时间序列执行特征选择。

TF -Probability BSTS 博客文章展示了如何在单个输入特征中包含季节性影响:

  ...
  temp_effect = sts.LinearRegression(
      design_matrix=tf.reshape(temp - np.mean(temp),
                               (-1, 1)), name='temp_effect')
  ...
  model = sts.Sum([..., temp_effect,...],
                   observed_time_series=observed_time_series)
Run Code Online (Sandbox Code Playgroud)

但是当有多个输入时间序列时怎么办?

通读文档后,似乎对于很多输入,SparseLinearRegression 会更好,这是有道理的,但我应该如何调整我的代码?

LinearRegression 和 SparseLinearRegression 方法的文档建议使用design_matrix=tf.stack([series1, series2], axis=-1), weights_prior_scale=0.1),但由于这与 TF-Probability 自己的博客文章使用它的方式不同,我不确定这是否是最好的方法。

我应该在design_matrix单个 SparseLinearRegression 中添加所有(数百个)输入特征,还是应该为每个特征添加单独的 LinearRegression,然后将sts.Sum()它们全部组合到模型中?虽然我想要可视化每个特征的影响的功能,但我最感兴趣的是让模型自动执行特征选择并为我可以访问的其余特征生成权重。