Я новичок в Tensorflow и Bayesian Structural Time Series, и мне действительно может помочь некоторая помощь в выяснении, как обучить многовариантную модель BSTS, которая автоматически выполняет выборку функций для сотен входных временных рядов.
В блоге 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)
Но как быть, когда имеется несколько временных рядов ввода?
При чтении документации создается впечатление, что при многих входах SparseLinearRegression предпочтительнее, что имеет смысл, но как мне адаптировать мой код?
В документации как для метода LinearRegression, так и для метода SparseLinearRegression предлагается использовать design_matrix=tf.stack([series1, series2], axis=-1), weights_prior_scale=0.1)
, но поскольку это отличается от того, как его использует собственный пост в блоге TF-Probability, я не уверен, что это лучший способ для go.
Должен ли я добавить все (несколько сотен) входных объектов в design_matrix
одной SparseLinearRegression или мне нужно добавить отдельную LinearRegression для каждой функции и затем использовать sts.Sum()
для объединения их всех в модель? Хотя мне бы хотелось, чтобы функциональность визуализировала влияние каждой функции, меня больше всего интересует, чтобы модель автоматически выполняла выбор объектов и генерировала веса для оставшихся функций, к которым я могу иметь доступ.
Любая помощь или предложения будут с благодарностью.