Как разложить и визуализировать наклонную составляющую в вероятности тензорного потока - PullRequest
0 голосов
/ 15 февраля 2020

Я использую tenorflow 2.1 и tenorflow_probability 0.9. Я установил Структурную модель временных рядов с сезонным компонентом. Я использую код из примера вероятности структурного временного ряда Tensorflow: Tensorflow Github .

В примере представлен большой график, на котором визуализируется разложение:


# Get the distributions over component outputs from the posterior marginals on
# training data, and from the forecast model.
component_dists = sts.decompose_by_component(
    demand_model,
    observed_time_series=demand_training_data,
    parameter_samples=q_samples_demand_)

forecast_component_dists = sts.decompose_forecast_by_component(
    demand_model,
    forecast_dist=demand_forecast_dist,
    parameter_samples=q_samples_demand_)




demand_component_means_, demand_component_stddevs_ = (
    {k.name: c.mean() for k, c in component_dists.items()},
    {k.name: c.stddev() for k, c in component_dists.items()})

(
    demand_forecast_component_means_,
    demand_forecast_component_stddevs_
) = (
    {k.name: c.mean() for k, c in forecast_component_dists.items()},
    {k.name: c.stddev() for k, c in forecast_component_dists.items()}
    )

При использовании компонента тренда можно ли разложить и визуализировать оба:

trend / _level_scale & trend / _slope_scale

Я пробовал много перестановок, чтобы извлечь вложенный элемент компонента Trend без удачи.

Спасибо за ваше время заранее.

1 Ответ

0 голосов
/ 17 февраля 2020

Мы не написали отдельный интерфейс STS для этого, но вы можете получить доступ к апостериорному состоянию в скрытых состояниях (в данном случае, как уровне, так и наклоне), напрямую запросив базовую модель пространства состояний для ее предельных средних и ковариаций. :

ssm = model.make_state_space_model(
        num_timesteps=num_timesteps,
        param_vals=parameter_samples)
posterior_means, posterior_covs = (
  ssm.posterior_marginals(observed_time_series))

Вы также должны иметь возможность рисовать образцы из заднего сустава, выполнив ssm.posterior_sample(observed_time_series, num_samples).

Похоже, что в настоящее время наблюдается сбой при рисовании задних образцов из модели без форма партии (Could not find valid device for node. Node:{{node Reshape}}): пока мы это исправляем, должно работать добавление искусственного размера партии в качестве обходного пути: ssm.posterior_sample(observed_time_series[tf.newaxis, ...], num_samples).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...