parameters: (exogenous_feature_columns)
return_statement: return (
        tf.contrib.timeseries.StructuralEnsembleRegressor(
            periodicities=12,
            # Extract a smooth period by constraining the number of latent values
            # being cycled between.
            cycle_num_latent_values=3,
            num_features=1,
            exogenous_feature_columns=exogenous_feature_columns,
            exogenous_update_condition=_exogenous_update_condition),
        # Use truncated backpropagation with a window size of 64, batching
        # together 4 of these windows (random offsets) per training step. Training
        # with exogenous features often requires somewhat larger windows.
        4, 64)
docstring: Constructs a StructuralEnsembleRegressor.
docstring_summary: Constructs a StructuralEnsembleRegressor.
docstring_tokens: Constructs a StructuralEnsembleRegressor .
function: def state_space_estimator(exogenous_feature_columns):
    """Constructs a StructuralEnsembleRegressor."""
  
    def _exogenous_update_condition(times, features):
      del times  # unused
      # Make exogenous updates sparse by setting an update condition. This in
      # effect allows missing exogenous features: if the condition evaluates to
      # False, no update is performed. Otherwise we sometimes end up with "leaky"
      # updates which add unnecessary uncertainty to the model even when there is
      # no changepoint.
      return tf.equal(tf.squeeze(features["is_changepoint"], axis=-1), "yes")
  
    return (
        tf.contrib.timeseries.StructuralEnsembleRegressor(
            periodicities=12,
            # Extract a smooth period by constraining the number of latent values
            # being cycled between.
            cycle_num_latent_values=3,
            num_features=1,
            exogenous_feature_columns=exogenous_feature_columns,
            exogenous_update_condition=_exogenous_update_condition),
        # Use truncated backpropagation with a window size of 64, batching
        # together 4 of these windows (random offsets) per training step. Training
        # with exogenous features often requires somewhat larger windows.
        4, 64)
function_tokens: def state_space_estimator ( exogenous_feature_columns ) : def _exogenous_update_condition ( times , features ) : del times # unused # Make exogenous updates sparse by setting an update condition. This in # effect allows missing exogenous features: if the condition evaluates to # False, no update is performed. Otherwise we sometimes end up with "leaky" # updates which add unnecessary uncertainty to the model even when there is # no changepoint. return tf . equal ( tf . squeeze ( features [ "is_changepoint" ] , axis = - 1 ) , "yes" ) return ( tf . contrib . timeseries . StructuralEnsembleRegressor ( periodicities = 12 , # Extract a smooth period by constraining the number of latent values # being cycled between. cycle_num_latent_values = 3 , num_features = 1 , exogenous_feature_columns = exogenous_feature_columns , exogenous_update_condition = _exogenous_update_condition ) , # Use truncated backpropagation with a window size of 64, batching # together 4 of these windows (random offsets) per training step. Training # with exogenous features often requires somewhat larger windows. 4 , 64 )