def _build_sts(self, observed_time_series=None):
        max_timesteps = 100
        num_features = 3

        return DynamicLinearRegression(
            design_matrix=tf.random.normal([max_timesteps, num_features]),
            observed_time_series=observed_time_series)
    def _build_sts(self, observed_time_series=None):
        max_timesteps = 100
        num_features = 3

        return DynamicLinearRegression(
            design_matrix=np.random.randn(max_timesteps,
                                          num_features).astype(np.float32),
            observed_time_series=observed_time_series)
示例#3
0
    def test_matrices_from_component(self):
        num_timesteps = 4
        num_features = 3
        drift_scale = 1.23

        design_matrix = self._build_placeholder(
            np.random.randn(num_timesteps, num_features))

        component = DynamicLinearRegression(design_matrix=design_matrix)

        ssm = component.make_state_space_model(num_timesteps, [drift_scale])

        for t in range(num_timesteps):
            observation_matrix = self.evaluate(
                ssm.get_observation_matrix_for_timestep(t).to_dense())

            self.assertAllClose(self.evaluate(design_matrix[tf.newaxis, t]),
                                observation_matrix)

            observation_noise_mean = self.evaluate(
                ssm.get_observation_noise_for_timestep(t).mean())
            observation_noise_covariance = self.evaluate(
                ssm.get_observation_noise_for_timestep(t).covariance())

            self.assertAllClose([0.0], observation_noise_mean)
            self.assertAllClose([[0.0]], observation_noise_covariance)

            transition_matrix = self.evaluate(
                ssm.get_transition_matrix_for_timestep(t).to_dense())

            self.assertAllClose(np.eye(num_features), transition_matrix)

            transition_noise_mean = self.evaluate(
                ssm.get_transition_noise_for_timestep(t).mean())
            transition_noise_covariance = self.evaluate(
                ssm.get_transition_noise_for_timestep(t).covariance())

            self.assertAllClose(np.zeros([num_features]),
                                transition_noise_mean)
            self.assertAllClose(
                np.square(drift_scale) * np.eye(num_features),
                transition_noise_covariance)
  def _build_sts(self, observed_time_series=None):
    max_timesteps = 100
    num_features = 3

    dtype = np.float32
    if observed_time_series is not None:
      observed_time_series_tensor, _ = (
          sts_util.canonicalize_observed_time_series_with_mask(
              observed_time_series))
      dtype = dtype_util.as_numpy_dtype(observed_time_series_tensor.dtype)

    return DynamicLinearRegression(
        design_matrix=np.random.randn(
            max_timesteps, num_features).astype(dtype),
        observed_time_series=observed_time_series)