class_docstr: A template for :class:`~greykite.sklearn.estimator.simple_silverkite_estimator.SimpleSilverkiteEstimator`.
  
  Takes input data and optional configuration parameters
  to customize the model. Returns a set of parameters to call
  :func:`~greykite.framework.pipeline.pipeline.forecast_pipeline`.
  
  Notes
  -----
  The attributes of a `~greykite.framework.templates.autogen.forecast_config.ForecastConfig` for
  :class:`~greykite.sklearn.estimator.simple_silverkite_estimator.SimpleSilverkiteEstimator` are:
  
      computation_param: `ComputationParam` or None, default None
          How to compute the result. See
          :class:`~greykite.framework.templates.autogen.forecast_config.ComputationParam`.
      coverage: `float` or None, default None
          Intended coverage of the prediction bands (0.0 to 1.0).
          Same as coverage in ``forecast_pipeline``.
          You may tune how the uncertainty is computed
          via `model_components.uncertainty["uncertainty_dict"]`.
      evaluation_metric_param: `EvaluationMetricParam` or None, default None
          What metrics to evaluate. See
          :class:`~greykite.framework.templates.autogen.forecast_config.EvaluationMetricParam`.
      evaluation_period_param: `EvaluationPeriodParam` or None, default None
          How to split data for evaluation. See
          :class:`~greykite.framework.templates.autogen.forecast_config.EvaluationPeriodParam`.
      forecast_horizon: `int` or None, default None
          Number of periods to forecast into the future. Must be > 0
          If None, default is determined from input data frequency
          Same as forecast_horizon in `forecast_pipeline`
      metadata_param: `MetadataParam` or None, default None
          Information about the input data. See
          :class:`~greykite.framework.templates.autogen.forecast_config.MetadataParam`.
      model_components_param: `ModelComponentsParam`, `list` [`ModelComponentsParam`] or None, default None
          Parameters to tune the model. See
          :class:`~greykite.framework.templates.autogen.forecast_config.ModelComponentsParam`.
          The fields are dictionaries with the following items.
  
          See inline comments on which values accept lists for grid search.
  
          seasonality: `dict` [`str`, `any`] or None, optional
              Seasonality configuration dictionary, with the following optional keys.
              (keys are SilverkiteSeasonalityEnum members in lower case).
  
              The keys are parameters of
              `~greykite.algo.forecast.silverkite.forecast_simple_silverkite.forecast_simple_silverkite`.
              Refer to that function for more details.
  
              ``"auto_seasonality"`` : `bool`, default False
                      Whether to automatically infer seasonality orders.
                      If True, the seasonality orders will be automatically inferred from input timeseries
                      and the following parameters will be ignored:
  
                          * ``"yearly_seasonality"``
                          * ``"quarterly_seasonality"``
                          * ``"monthly_seasonality"``
                          * ``"weekly_seasonality"``
                          * ``"daily_seasonality"``
  
                      For detail, see `~greykite.algo.common.seasonality_inferrer.SeasonalityInferrer`.
              ``"yearly_seasonality"``: `str` or `bool` or `int` or a list of such values for grid search, default 'auto'
                  Determines the yearly seasonality
                  'auto', True, False, or a number for the Fourier order
              ``"quarterly_seasonality"``: `str` or `bool` or `int` or a list of such values for grid search, default 'auto'
                  Determines the quarterly seasonality
                  'auto', True, False, or a number for the Fourier order
              ``"monthly_seasonality"``: `str` or `bool` or `int` or a list of such values for grid search, default 'auto'
                  Determines the monthly seasonality
                  'auto', True, False, or a number for the Fourier order
              ``"weekly_seasonality"``: `str` or `bool` or `int` or a list of such values for grid search, default 'auto'
                  Determines the weekly seasonality
                  'auto', True, False, or a number for the Fourier order
              ``"daily_seasonality"``: `str` or `bool` or `int` or a list of such values for grid search, default 'auto'
                  Determines the daily seasonality
                  'auto', True, False, or a number for the Fourier order
  
          growth: `dict` [`str`, `any`] or None, optional
              Growth configuration dictionary with the following optional key:
  
              ``"growth_term"``: `str` or None or a list of such values for grid search
                  How to model the growth.
                  Valid options are "linear", "quadratic", "sqrt", "cubic", "cuberoot".
                  See `~greykite.common.constants.GrowthColEnum`.
                  All these terms have their origin at the train start date.
  
          events: `dict` [`str`, `any`] or None, optional
              Holiday/events configuration dictionary with the following optional keys:
  
              ``"auto_holiday"`` : `bool`, default False
                  Whether to automatically infer holiday configuration based on the input timeseries.
                  If True, the following keys will be ignored:
  
                      * ``"holiday_lookup_countries"``
                      * ``"holidays_to_model_separately"``
                      * ``"holiday_pre_num_days"``
                      * ``"holiday_post_num_days"``
                      * ``"holiday_pre_post_num_dict"``
  
                  For details, see `~greykite.algo.common.holiday_inferrer.HolidayInferrer`.
                  Extra events specified in ``daily_event_df_dict`` will be added to the inferred holidays.
  
              ``"holiday_lookup_countries"``: `list` [`str`] or "auto" or None or a list of such values for grid search, default "auto"
                  The countries that contain the holidays you intend to model
                  (``holidays_to_model_separately``).
  
                  * If "auto", uses a default list of countries
                    that contain the default ``holidays_to_model_separately``.
                    See `~greykite.algo.forecast.silverkite.constants.silverkite_holiday.SilverkiteHoliday.HOLIDAY_LOOKUP_COUNTRIES_AUTO`.
                  * If a list, must be a list of country names.
                  * If None or an empty list, no holidays are modeled.
  
              ``"holidays_to_model_separately"``: `list` [`str`] or "auto" or `~greykite.algo.forecast.silverkite.constants.silverkite_holiday.SilverkiteHoliday.ALL_HOLIDAYS_IN_COUNTRIES` or None or a list of such values for grid search, default "auto"  # noqa: E501
                  Which holidays to include in the model.
                  The model creates a separate key, value for each item in ``holidays_to_model_separately``.
                  The other holidays in the countries are grouped together as a single effect.
  
                  * If "auto", uses a default list of important holidays.
                    See `~greykite.algo.forecast.silverkite.constants.silverkite_holiday.SilverkiteHoliday.HOLIDAYS_TO_MODEL_SEPARATELY_AUTO`.
                  * If `~greykite.algo.forecast.silverkite.constants.silverkite_holiday.SilverkiteHoliday.ALL_HOLIDAYS_IN_COUNTRIES`,
                    uses all available holidays in ``holiday_lookup_countries``. This can often
                    create a model that has too many parameters, and should typically be avoided.
                  * If a list, must be a list of holiday names.
                  * If None or an empty list, all holidays in ``holiday_lookup_countries`` are grouped together
                    as a single effect.
  
                  Use ``holiday_lookup_countries`` to provide a list of countries where these holiday occur.
  
              ``"holiday_pre_num_days"``: `int` or a list of such values for grid search, default 2
                  model holiday effects for pre_num days before the holiday.
                  The unit is days, not periods. It does not depend on input data frequency.
              ``"holiday_post_num_days"``: `int` or a list of such values for grid search, default 2
                  model holiday effects for post_num days after the holiday.
                  The unit is days, not periods. It does not depend on input data frequency.
  
              ``"holiday_pre_post_num_dict"``: `dict` [`str`, (`int`, `int`)] or None, default None
                  Overrides ``pre_num`` and ``post_num`` for each holiday in
                  ``holidays_to_model_separately``.
                  For example, if ``holidays_to_model_separately`` contains "Thanksgiving" and "Labor Day",
                  this parameter can be set to ``{"Thanksgiving": [1, 3], "Labor Day": [1, 2]}``,
                  denoting that the "Thanksgiving" ``pre_num`` is 1 and ``post_num`` is 3, and "Labor Day"
                  ``pre_num`` is 1 and ``post_num`` is 2.
                  Holidays not specified use the default given by ``pre_num`` and ``post_num``.
              ``"daily_event_df_dict"``: `dict` [`str`, `pandas.DataFrame`] or None, default None
                  A dictionary of data frames, each representing events data for the corresponding key.
                  Specifies additional events to include besides the holidays specified above. The format
                  is the same as in `~greykite.algo.forecast.silverkite.forecast_silverkite.SilverkiteForecast.forecast`.
                  The DataFrame has two columns:
  
                      - The first column contains event dates. Must be in a format
                        recognized by `pandas.to_datetime`. Must be at daily
                        frequency for proper join. It is joined against the time
                        in ``df``, converted to a day:
                        ``pd.to_datetime(pd.DatetimeIndex(df[time_col]).date)``.
                      - the second column contains the event label for each date
  
                  The column order is important; column names are ignored.
                  The event dates must span their occurrences in both the training
                  and future prediction period.
  
                  During modeling, each key in the dictionary is mapped to a categorical variable
                  named ``f"{EVENT_PREFIX}_{key}"``, whose value at each timestamp is specified
                  by the corresponding DataFrame.
  
                  For example, to manually specify a yearly event on September 1
                  during a training/forecast period that spans 2020-2022::
  
                      daily_event_df_dict = {
                          "custom_event": pd.DataFrame({
                              "date": ["2020-09-01", "2021-09-01", "2022-09-01"],
                              "label": ["is_event", "is_event", "is_event"]
                          })
                      }
  
                  It's possible to specify multiple events in the same df. Two events,
                  ``"sep"`` and ``"oct"`` are specified below for 2020-2021::
  
                      daily_event_df_dict = {
                          "custom_event": pd.DataFrame({
                              "date": ["2020-09-01", "2020-10-01", "2021-09-01", "2021-10-01"],
                              "event_name": ["sep", "oct", "sep", "oct"]
                          })
                      }
  
                  Use multiple keys if two events may fall on the same date. These events
                  must be in separate DataFrames::
  
                      daily_event_df_dict = {
                          "fixed_event": pd.DataFrame({
                              "date": ["2020-09-01", "2021-09-01", "2022-09-01"],
                              "event_name": "fixed_event"
                          }),
                          "moving_event": pd.DataFrame({
                              "date": ["2020-09-01", "2021-08-28", "2022-09-03"],
                              "event_name": "moving_event"
                          }),
                      }
  
                  The multiple event specification can be used even if events never overlap. An
                  equivalent specification to the second example::
  
                      daily_event_df_dict = {
                          "sep": pd.DataFrame({
                              "date": ["2020-09-01", "2021-09-01"],
                              "event_name": "is_event"
                          }),
                          "oct": pd.DataFrame({
                              "date": ["2020-10-01", "2021-10-01"],
                              "event_name": "is_event"
                          }),
                      }
  
                  Note: All these events are automatically added to the model. There is no need
                  to specify them in ``extra_pred_cols`` as you would for
                  `~greykite.algo.forecast.silverkite.forecast_silverkite.SilverkiteForecast.forecast`.
  
                  Note: Do not use `~greykite.common.constants.EVENT_DEFAULT`
                  in the second column. This is reserved to indicate dates that do not
                  correspond to an event.
          changepoints: `dict` [`str`, `dict`] or None, optional
              Specifies the changepoint configuration. Dictionary with the following
              optional key:
  
              ``"auto_growth"`` : `bool`, default False
                  Whether to automatically infer growth configuration.
                  If True, the growth term and automatically changepoint detection configuration
                  will be inferred from input timeseries,
                  and the following parameters will be ignored:
  
                      * ``"growth_term"`` in ``growth`` dictionary
                      * ``"changepoints_dict"`` (All parameters but custom changepoint parameters
                        to be combined with automatically detected changepoints.)
  
                  For detail, see
                  `~greykite.algo.changepoint.adalasso.auto_changepoint_params.generate_trend_changepoint_detection_params`.
  
              ``"changepoints_dict"``: `dict` or None or a list of such values for grid search
                  Changepoints dictionary passed to ``forecast_simple_silverkite``. A dictionary
                  with the following optional keys:
  
                  ``"method"``: `str`
                      The method to locate changepoints. Valid options:
  
                          - "uniform". Places n_changepoints evenly spaced changepoints to allow growth to change.
                          - "custom". Places changepoints at the specified dates.
                          - "auto". Automatically detects change points.
  
                      Additional keys to provide parameters for each particular method are described below.
                  ``"continuous_time_col"``: `str` or None
                      Column to apply `growth_func` to, to generate changepoint features
                      Typically, this should match the growth term in the model
                  ``"growth_func"``: callable or None
                      Growth function (`numeric` -> `numeric`). Changepoint features are created
                      by applying `growth_func` to "continuous_time_col" with offsets.
                      If None, uses identity function to use `continuous_time_col` directly
                      as growth term
  
                  If changepoints_dict["method"] == "uniform", this other key is required:
  
                      ``"n_changepoints"``: `int`
                          number of changepoints to evenly space across training period
  
                  If changepoints_dict["method"] == "custom", this other key is required:
  
                      ``"dates"``: `list` [`int` or `float` or `str` or `datetime`]
                          Changepoint dates. Must be parsable by pd.to_datetime.
                          Changepoints are set at the closest time on or after these dates
                          in the dataset.
  
                  If changepoints_dict["method"] == "auto", optional keys can be passed that match the parameters in
                  `~greykite.algo.changepoint.adalasso.changepoint_detector.ChangepointDetector.find_trend_changepoints`
                  (except ``df``, ``time_col`` and ``value_col``, which are already known).
                  To add manually specified changepoints to the automatically detected ones, the keys ``dates``,
                  ``combine_changepoint_min_distance`` and ``keep_detected`` can be specified, which correspond to the
                  three parameters ``custom_changepoint_dates``, ``min_distance`` and ``keep_detected`` in
                  `~greykite.algo.changepoint.adalasso.changepoints_utils.combine_detected_and_custom_trend_changepoints`.
  
              ``"seasonality_changepoints_dict"``: `dict` or None or a list of such values for grid search
                      seasonality changepoints dictionary passed to ``forecast_simple_silverkite``. The optional
                      keys are the parameters in
                      `~greykite.algo.changepoint.adalasso.changepoint_detector.ChangepointDetector.find_seasonality_changepoints`.
                      You don't need to provide ``df``, ``time_col``, ``value_col`` or ``trend_changepoints``, since they
                      are passed with the class automatically.
  
          autoregression: `dict` [`str`, `dict`] or None, optional
              Specifies the autoregression configuration. Dictionary with the following optional keys:
  
              ``"autoreg_dict"``: `dict` or `str` or None or a list of such values for grid search
                  If a `dict`: A dictionary with arguments for `~greykite.common.features.timeseries_lags.build_autoreg_df`.
                  That function's parameter ``value_col`` is inferred from the input of
                  current function ``self.forecast``. Other keys are:
  
                      ``"lag_dict"`` : `dict` or None
                      ``"agg_lag_dict"`` : `dict` or None
                      ``"series_na_fill_func"`` : callable
  
                  If a `str`: The string will represent a method and a dictionary will be
                  constructed using that `str`.
                  Currently only implemented method is "auto" which uses
                  `~greykite.algo.forecast.silverkite.SilverkiteForecast.__get_default_autoreg_dict`
                  to create a dictionary.
                  See more details for above parameters in
                  `~greykite.common.features.timeseries_lags.build_autoreg_df`.
  
              ``"simulation_num"`` :  `int`, default 10
                  The number of simulations to use. Applies only if any of the lags in ``autoreg_dict``
                  are smaller than ``forecast_horizon``. In that case, simulations are needed to generate
                  forecasts and prediction intervals.
  
              ``"fast_simulation"`` : `bool`, default False
                  Deterimes if fast simulations are to be used. This only impacts models
                  which include auto-regression. This method will only generate one simulation
                  without any error being added and then add the error using the volatility
                  model. The advantage is a major boost in speed during inference and the
                  disadvantage is potentially less accurate prediction intervals.
  
          regressors: `dict` [`str`, `any`] or None, optional
              Specifies the regressors to include in the model (e.g. macro-economic factors).
              Dictionary with the following optional keys:
  
              ``"regressor_cols"``: `list` [`str`] or None or a list of such values for grid search
                  The columns in ``df`` to use as regressors.
                  Note that regressor values must be available in ``df`` for all prediction dates.
                  Thus, ``df`` will contain timestamps for both training and future prediction.
  
                  * regressors must be available on all dates
                  * the response must be available for training dates (metadata["value_col"])
  
              Use ``extra_pred_cols`` to specify interactions of any model terms with the regressors.
  
          lagged_regressors: `dict` [`str`, `dict`] or None, optional
              Specifies the lagged regressors configuration. Dictionary with the following optional key:
  
              ``"lagged_regressor_dict"``: `dict` or None or a list of such values for grid search
                  A dictionary with arguments for `~greykite.common.features.timeseries_lags.build_autoreg_df_multi`.
                  The keys of the dictionary are the target lagged regressor column names.
                  It can leverage the regressors included in ``df``.
                  The value of each key is either a `dict` or `str`.
                  If `dict`, it has the following keys:
  
                      ``"lag_dict"`` : `dict` or None
                      ``"agg_lag_dict"`` : `dict` or None
                      ``"series_na_fill_func"`` : callable
  
                  If `str`, it represents a method and a dictionary will be constructed using that `str`.
                  Currently the only implemented method is "auto" which uses ``SilverkiteForecast``'s
                  `~greykite.algo.forecast.silverkite.SilverkiteForecast.__get_default_lagged_regressor_dict`
                  to create a dictionary for each lagged regressor.
                  An example::
  
                      lagged_regressor_dict = {
                          "regressor1": {
                              "lag_dict": {"orders": [1, 2, 3]},
                              "agg_lag_dict": {
                                  "orders_list": [[7, 7 * 2, 7 * 3]],
                                  "interval_list": [(8, 7 * 2)]},
                              "series_na_fill_func": lambda s: s.bfill().ffill()},
                          "regressor2": "auto"}
  
                  Check the docstring of `~greykite.common.features.timeseries_lags.build_autoreg_df_multi`
                  for more details for each argument.
  
          uncertainty: `dict` [`str`, `dict`] or None, optional
              Along with ``coverage``, specifies the uncertainty interval configuration. Use ``coverage``
              to set interval size. Use ``uncertainty`` to tune the calculation.
  
              ``"uncertainty_dict"``: `str` or `dict` or None or a list of such values for grid search
                  "auto" or a dictionary on how to fit the uncertainty model.
                  If a dictionary, valid keys are:
  
                      ``"uncertainty_method"``: `str`
                          The title of the method.
                          Only ``"simple_conditional_residuals"`` is implemented
                          in `~greykite.algo.common.ml_models.fit_ml_model`
                          which calculates intervals using residuals.
  
                      ``"params"``: `dict`
                          A dictionary of parameters needed for
                          the requested ``uncertainty_method``. For example, for
                          ``uncertainty_method="simple_conditional_residuals"``, see
                          parameters of `~greykite.algo.uncertainty.conditional.conf_interval.conf_interval`:
  
                              * ``"conditional_cols"``
                              * ``"quantiles"``
                              * ``"quantile_estimation_method"``
                              * ``"sample_size_thresh"``
                              * ``"small_sample_size_method"``
                              * ``"small_sample_size_quantile"``
  
                          The default value for ``quantiles`` is inferred from coverage.
  
                  If "auto", see
                  `~greykite.algo.forecast.silverkite.forecast_silverkite_helper.get_silverkite_uncertainty_dict`
                  for the default value. If ``coverage`` is not None and ``uncertainty_dict`` is not provided,
                  then the "auto" setting is used.
  
                  If ``coverage`` is None and ``uncertainty_dict`` is None, then no intervals are returned.
  
          custom: `dict` [`str`, `any`] or None, optional
              Custom parameters that don't fit the categories above. Dictionary
              with the following optional keys:
  
              ``"fit_algorithm_dict"``: `dict` or a list of such values for grid search
                  How to fit the model. A dictionary with the following optional keys.
  
                      ``"fit_algorithm"``: `str`, optional, default "ridge"
                          The type of predictive model used in fitting.
  
                          See `~greykite.algo.common.ml_models.fit_model_via_design_matrix`
                          for available options and their parameters.
                      ``"fit_algorithm_params"``: `dict` or None, optional, default None
                          Parameters passed to the requested fit_algorithm.
                          If None, uses the defaults in `~greykite.algo.common.ml_models.fit_model_via_design_matrix`.
  
              ``"feature_sets_enabled"``: `dict` [`str`, `bool` or "auto" or None] or `bool` or "auto" or None; or a list of such values for grid search
                  Whether to include interaction terms and categorical variables to increase model flexibility.
  
                  If a `dict`, boolean values indicate whether include various sets of features in the model.
                  The following keys are recognized
                  (from `~greykite.algo.forecast.silverkite.constants.silverkite_column.SilverkiteColumn`):
  
                      ``"COLS_HOUR_OF_WEEK"``: `str`
                          Constant hour of week effect
                      ``"COLS_WEEKEND_SEAS"``: `str`
                          Daily seasonality interaction with is_weekend
                      ``"COLS_DAY_OF_WEEK_SEAS"``: `str`
                          Daily seasonality interaction with day of week
                      ``"COLS_TREND_DAILY_SEAS"``: `str`
                          Allow daily seasonality to change over time by is_weekend
                      ``"COLS_EVENT_SEAS"``: `str`
                          Allow sub-daily event effects
                      ``"COLS_EVENT_WEEKEND_SEAS"``: `str`
                          Allow sub-daily event effect to interact with is_weekend
                      ``"COLS_DAY_OF_WEEK"``: `str`
                          Constant day of week effect
                      ``"COLS_TREND_WEEKEND"``: `str`
                          Allow trend (growth, changepoints) to interact with is_weekend
                      ``"COLS_TREND_DAY_OF_WEEK"``: `str`
                          Allow trend to interact with day of week
                      ``"COLS_TREND_WEEKLY_SEAS"``: `str`
                          Allow weekly seasonality to change over time
  
                  The following dictionary values are recognized:
  
                      - True: include the feature set in the model
                      - False: do not include the feature set in the model
                      - None: do not include the feature set in the model
                      - "auto" or not provided: use the default setting based on data frequency and size
  
                  If not a `dict`:
  
                      - if a boolean, equivalent to a dictionary with all values set to the boolean.
                      - if None, equivalent to a dictionary with all values set to False.
                      - if "auto", equivalent to a dictionary with all values set to "auto".
  
              ``"max_daily_seas_interaction_order"``: `int` or None or a list of such values for grid search, default 5
                  Max fourier order to use for interactions with daily seasonality.
                  (COLS_EVENT_SEAS, COLS_EVENT_WEEKEND_SEAS, COLS_WEEKEND_SEAS, COLS_DAY_OF_WEEK_SEAS, COLS_TREND_DAILY_SEAS).
  
                  Model includes interactions terms specified by ``feature_sets_enabled``
                  up to the order limited by this value and the available order from ``seasonality``.
              ``"max_weekly_seas_interaction_order"`` : `int` or None or a list of such values for grid search, default 2
                  Max fourier order to use for interactions with weekly seasonality (COLS_TREND_WEEKLY_SEAS).
  
                  Model includes interactions terms specified by ``feature_sets_enabled``
                  up to the order limited by this value and the available order from ``seasonality``.
              ``"extra_pred_cols"``: `list` [`str`] or None or a list of such values for grid search, default None
                  Names of extra predictor columns to pass to ``forecast_silverkite``.
                  The standard interactions can be controlled via ``feature_sets_enabled`` parameter.
                  Accepts any valid patsy model formula term. Can be used to model complex interactions
                  of time features, events, seasonality, changepoints, regressors. Columns should be
                  generated by ``build_silverkite_features`` or included with input data.
                  These are added to any features already included by ``feature_sets_enabled`` and
                  terms specified by ``model``.
              ``"drop_pred_cols"`` : `list` [`str`] or None, default None
                  Names of predictor columns to be dropped from the final model.
                  Ignored if None.
              ``"explicit_pred_cols"`` : `list` [`str`] or None, default None
                  Names of the explicit predictor columns which will be
                  the only variables in the final model. Note that this overwrites
                  the generated predictors in the model and may include new
                  terms not appearing in the predictors (e.g. interaction terms).
                  Ignored if None.
              ``"min_admissible_value"``: `float` or `double` or `int` or None, default None
                  The lowest admissible value for the forecasts and prediction
                  intervals. Any value below this will be mapped back to this value.
                  If None, there is no lower bound.
              ``"max_admissible_value"``: `float` or `double` or `int` or None, default None
                  The highest admissible value for the forecasts and prediction
                  intervals. Any value above this will be mapped back to this value.
                  If None, there is no upper bound.
              ``"normalize_method"``: `str` or None, default None
                  The normalization method for feature matrix.
                  If a string is provided, it will be used as the normalization method
                  in `~greykite.common.features.normalize.normalize_df`,
                  passed via the argument ``method``.
                  Available values are "statistical", "zero_to_one", "minus_half_to_half"
                  and "zero_at_origin". See that function for more details.
  
          hyperparameter_override: `dict` [`str`, `any`] or None or `list` [`dict` [`str`, `any`] or None], optional
              After the above model components are used to create a hyperparameter grid, the result is
              updated by this dictionary, to create new keys or override existing ones.
              Allows for complete customization of the grid search.
  
              Keys should have format ``{named_step}__{parameter_name}`` for the named steps of the
              `sklearn.pipeline.Pipeline` returned by this function. See `sklearn.pipeline.Pipeline`.
  
              For example::
  
                  hyperparameter_override={
                      "estimator__silverkite": SimpleSilverkiteForecast(),
                      "estimator__growth_term": "linear",
                      "input__response__null__impute_algorithm": "ts_interpolate",
                      "input__response__null__impute_params": {"orders": [7, 14]},
                      "input__regressors_numeric__normalize__normalize_algorithm": "RobustScaler",
                  }
  
              If a list of dictionaries, grid search will be done for each dictionary in the list.
              Each dictionary in the list override the defaults. This enables grid search
              over specific combinations of parameters to reduce the search space.
  
              * For example, the first dictionary could define combinations of parameters for a
                "complex" model, and the second dictionary could define combinations of parameters
                for a "simple" model, to prevent mixed combinations of simple and complex.
              * Or the first dictionary could grid search over fit algorithm, and the second dictionary
                could use a single fit algorithm and grid search over seasonality.
  
              The result is passed as the ``param_distributions`` parameter
              to `sklearn.model_selection.RandomizedSearchCV`.
  
      model_template: `str`, `list`[`str`] or None, default None
          The simple silverkite template support single templates, multi templates or a list of single/multi templates.
          A valid single template must be one of ``SILVERKITE``, ``SILVERKITE_MONTHLY``,
          ``SILVERKITE_DAILY_1_CONFIG_1``, ``SILVERKITE_DAILY_1_CONFIG_2``, ``SILVERKITE_DAILY_1_CONFIG_3``,
          ``SILVERKITE_EMPTY``, or that consists of
  
              {FREQ}_SEAS_{VAL}_GR_{VAL}_CP_{VAL}_HOL_{VAL}_FEASET_{VAL}_ALGO_{VAL}_AR_{VAL}
  
          For example, we have DAILY_SEAS_NM_GR_LINEAR_CP_LT_HOL_NONE_FEASET_ON_ALGO_RIDGE_AR_ON. The valid FREQ and VAL
          can be found at `~greykite.framework.templates.simple_silverkite_template_config`. The components stand for seasonality,
          growth, changepoints_dict, events, feature_sets_enabled, fit_algorithm and autoregression in
          `~greykite.framework.templates.autogen.forecast_config.ModelComponentsParam`, which is used in
          `~greykite.framework.templates.simple_silverkite_template.SimpleSilverkiteTemplate`. Users are allowed to
  
              - Omit any number of component-value pairs, and the omitted will be filled with default values.
              - Switch the order of different component-value pairs.
  
          A valid multi template must belong to
          `~greykite.framework.templates.simple_silverkite_template_config.MULTI_TEMPLATES`
          or must be a list of single or multi template names.
class_docstr_tok: ["A","template","for",":","class",":","`","~greykite.sklearn.estimator.simple_silverkite_estimator.SimpleSilverkiteEstimator","`",".","Takes","input","data","and","optional","configuration","parameters","to","customize","the","model",".","Returns","a","set","of","parameters","to","call",":","func",":","`","~greykite.framework.pipeline.pipeline.forecast_pipeline","`",".","Notes","--","--","-","The","attributes","of","a","`","~greykite.framework.templates.autogen.forecast_config.ForecastConfig","`","for",":","class",":","`","~greykite.sklearn.estimator.simple_silverkite_estimator.SimpleSilverkiteEstimator","`","are",":","computation_param",":","`","ComputationParam","`","or","None",",","default","None","How","to","compute","the","result",".","See",":","class",":","`","~greykite.framework.templates.autogen.forecast_config.ComputationParam","`",".","coverage",":","`","float","`","or","None",",","default","None","Intended","coverage","of","the","prediction","bands","(","0.0","to","1.0",")",".","Same","as","coverage","in","``","forecast_pipeline","``",".","You","may","tune","how","the","uncertainty","is","computed","via","`","model_components.uncertainty","[","``","uncertainty_dict","''","]","`",".","evaluation_metric_param",":","`","EvaluationMetricParam","`","or","None",",","default","None","What","metrics","to","evaluate",".","See",":","class",":","`","~greykite.framework.templates.autogen.forecast_config.EvaluationMetricParam","`",".","evaluation_period_param",":","`","EvaluationPeriodParam","`","or","None",",","default","None","How","to","split","data","for","evaluation",".","See",":","class",":","`","~greykite.framework.templates.autogen.forecast_config.EvaluationPeriodParam","`",".","forecast_horizon",":","`","int","`","or","None",",","default","None","Number","of","periods","to","forecast","into","the","future",".","Must","be",">","0","If","None",",","default","is","determined","from","input","data","frequency","Same","as","forecast_horizon","in","`","forecast_pipeline","`","metadata_param",":","`","MetadataParam","`","or","None",",","default","None","Information","about","the","input","data",".","See",":","class",":","`","~greykite.framework.templates.autogen.forecast_config.MetadataParam","`",".","model_components_param",":","`","ModelComponentsParam","`",",","`","list","`","[","`","ModelComponentsParam","`","]","or","None",",","default","None","Parameters","to","tune","the","model",".","See",":","class",":","`","~greykite.framework.templates.autogen.forecast_config.ModelComponentsParam","`",".","The","fields","are","dictionaries","with","the","following","items",".","See","inline","comments","on","which","values","accept","lists","for","grid","search",".","seasonality",":","`","dict","`","[","`","str","`",",","`","any","`","]","or","None",",","optional","Seasonality","configuration","dictionary",",","with","the","following","optional","keys",".","(","keys","are","SilverkiteSeasonalityEnum","members","in","lower","case",")",".","The","keys","are","parameters","of","`","~greykite.algo.forecast.silverkite.forecast_simple_silverkite.forecast_simple_silverkite","`",".","Refer","to","that","function","for","more","details",".","``","``","auto_seasonality","''","``",":","`","bool","`",",","default","False","Whether","to","automatically","infer","seasonality","orders",".","If","True",",","the","seasonality","orders","will","be","automatically","inferred","from","input","timeseries","and","the","following","parameters","will","be","ignored",":","*","``","``","yearly_seasonality","''","``","*","``","``","quarterly_seasonality","''","``","*","``","``","monthly_seasonality","''","``","*","``","``","weekly_seasonality","''","``","*","``","``","daily_seasonality","''","``","For","detail",",","see","`","~greykite.algo.common.seasonality_inferrer.SeasonalityInferrer","`",".","``","``","yearly_seasonality","''","``",":","`","str","`","or","`","bool","`","or","`","int","`","or","a","list","of","such","values","for","grid","search",",","default","'auto'","Determines","the","yearly","seasonality","'auto","'",",","True",",","False",",","or","a","number","for","the","Fourier","order","``","``","quarterly_seasonality","''","``",":","`","str","`","or","`","bool","`","or","`","int","`","or","a","list","of","such","values","for","grid","search",",","default","'auto'","Determines","the","quarterly","seasonality","'auto","'",",","True",",","False",",","or","a","number","for","the","Fourier","order","``","``","monthly_seasonality","''","``",":","`","str","`","or","`","bool","`","or","`","int","`","or","a","list","of","such","values","for","grid","search",",","default","'auto'","Determines","the","monthly","seasonality","'auto","'",",","True",",","False",",","or","a","number","for","the","Fourier","order","``","``","weekly_seasonality","''","``",":","`","str","`","or","`","bool","`","or","`","int","`","or","a","list","of","such","values","for","grid","search",",","default","'auto'","Determines","the","weekly","seasonality","'auto","'",",","True",",","False",",","or","a","number","for","the","Fourier","order","``","``","daily_seasonality","''","``",":","`","str","`","or","`","bool","`","or","`","int","`","or","a","list","of","such","values","for","grid","search",",","default","'auto'","Determines","the","daily","seasonality","'auto","'",",","True",",","False",",","or","a","number","for","the","Fourier","order","growth",":","`","dict","`","[","`","str","`",",","`","any","`","]","or","None",",","optional","Growth","configuration","dictionary","with","the","following","optional","key",":","``","``","growth_term","''","``",":","`","str","`","or","None","or","a","list","of","such","values","for","grid","search","How","to","model","the","growth",".","Valid","options","are","``","linear","''",",","``","quadratic","''",",","``","sqrt","''",",","``","cubic","''",",","``","cuberoot","''",".","See","`","~greykite.common.constants.GrowthColEnum","`",".","All","these","terms","have","their","origin","at","the","train","start","date",".","events",":","`","dict","`","[","`","str","`",",","`","any","`","]","or","None",",","optional","Holiday\/events","configuration","dictionary","with","the","following","optional","keys",":","``","``","auto_holiday","''","``",":","`","bool","`",",","default","False","Whether","to","automatically","infer","holiday","configuration","based","on","the","input","timeseries",".","If","True",",","the","following","keys","will","be","ignored",":","*","``","``","holiday_lookup_countries","''","``","*","``","``","holidays_to_model_separately","''","``","*","``","``","holiday_pre_num_days","''","``","*","``","``","holiday_post_num_days","''","``","*","``","``","holiday_pre_post_num_dict","''","``","For","details",",","see","`","~greykite.algo.common.holiday_inferrer.HolidayInferrer","`",".","Extra","events","specified","in","``","daily_event_df_dict","``","will","be","added","to","the","inferred","holidays",".","``","``","holiday_lookup_countries","''","``",":","`","list","`","[","`","str","`","]","or","``","auto","''","or","None","or","a","list","of","such","values","for","grid","search",",","default","``","auto","''","The","countries","that","contain","the","holidays","you","intend","to","model","(","``","holidays_to_model_separately","``",")",".","*","If","``","auto","''",",","uses","a","default","list","of","countries","that","contain","the","default","``","holidays_to_model_separately","``",".","See","`","~greykite.algo.forecast.silverkite.constants.silverkite_holiday.SilverkiteHoliday.HOLIDAY_LOOKUP_COUNTRIES_AUTO","`",".","*","If","a","list",",","must","be","a","list","of","country","names",".","*","If","None","or","an","empty","list",",","no","holidays","are","modeled",".","``","``","holidays_to_model_separately","''","``",":","`","list","`","[","`","str","`","]","or","``","auto","''","or","`","~greykite.algo.forecast.silverkite.constants.silverkite_holiday.SilverkiteHoliday.ALL_HOLIDAYS_IN_COUNTRIES","`","or","None","or","a","list","of","such","values","for","grid","search",",","default","``","auto","''","#","noqa",":","E501","Which","holidays","to","include","in","the","model",".","The","model","creates","a","separate","key",",","value","for","each","item","in","``","holidays_to_model_separately","``",".","The","other","holidays","in","the","countries","are","grouped","together","as","a","single","effect",".","*","If","``","auto","''",",","uses","a","default","list","of","important","holidays",".","See","`","~greykite.algo.forecast.silverkite.constants.silverkite_holiday.SilverkiteHoliday.HOLIDAYS_TO_MODEL_SEPARATELY_AUTO","`",".","*","If","`","~greykite.algo.forecast.silverkite.constants.silverkite_holiday.SilverkiteHoliday.ALL_HOLIDAYS_IN_COUNTRIES","`",",","uses","all","available","holidays","in","``","holiday_lookup_countries","``",".","This","can","often","create","a","model","that","has","too","many","parameters",",","and","should","typically","be","avoided",".","*","If","a","list",",","must","be","a","list","of","holiday","names",".","*","If","None","or","an","empty","list",",","all","holidays","in","``","holiday_lookup_countries","``","are","grouped","together","as","a","single","effect",".","Use","``","holiday_lookup_countries","``","to","provide","a","list","of","countries","where","these","holiday","occur",".","``","``","holiday_pre_num_days","''","``",":","`","int","`","or","a","list","of","such","values","for","grid","search",",","default","2","model","holiday","effects","for","pre_num","days","before","the","holiday",".","The","unit","is","days",",","not","periods",".","It","does","not","depend","on","input","data","frequency",".","``","``","holiday_post_num_days","''","``",":","`","int","`","or","a","list","of","such","values","for","grid","search",",","default","2","model","holiday","effects","for","post_num","days","after","the","holiday",".","The","unit","is","days",",","not","periods",".","It","does","not","depend","on","input","data","frequency",".","``","``","holiday_pre_post_num_dict","''","``",":","`","dict","`","[","`","str","`",",","(","`","int","`",",","`","int","`",")","]","or","None",",","default","None","Overrides","``","pre_num","``","and","``","post_num","``","for","each","holiday","in","``","holidays_to_model_separately","``",".","For","example",",","if","``","holidays_to_model_separately","``","contains","``","Thanksgiving","''","and","``","Labor","Day","''",",","this","parameter","can","be","set","to","``","{","``","Thanksgiving","''",":","[","1",",","3","]",",","``","Labor","Day","''",":","[","1",",","2","]","}","``",",","denoting","that","the","``","Thanksgiving","''","``","pre_num","``","is","1","and","``","post_num","``","is","3",",","and","``","Labor","Day","''","``","pre_num","``","is","1","and","``","post_num","``","is","2",".","Holidays","not","specified","use","the","default","given","by","``","pre_num","``","and","``","post_num","``",".","``","``","daily_event_df_dict","''","``",":","`","dict","`","[","`","str","`",",","`","pandas.DataFrame","`","]","or","None",",","default","None","A","dictionary","of","data","frames",",","each","representing","events","data","for","the","corresponding","key",".","Specifies","additional","events","to","include","besides","the","holidays","specified","above",".","The","format","is","the","same","as","in","`","~greykite.algo.forecast.silverkite.forecast_silverkite.SilverkiteForecast.forecast","`",".","The","DataFrame","has","two","columns",":","-","The","first","column","contains","event","dates",".","Must","be","in","a","format","recognized","by","`","pandas.to_datetime","`",".","Must","be","at","daily","frequency","for","proper","join",".","It","is","joined","against","the","time","in","``","df","``",",","converted","to","a","day",":","``","pd.to_datetime","(","pd.DatetimeIndex","(","df","[","time_col","]",")",".date",")","``",".","-","the","second","column","contains","the","event","label","for","each","date","The","column","order","is","important",";","column","names","are","ignored",".","The","event","dates","must","span","their","occurrences","in","both","the","training","and","future","prediction","period",".","During","modeling",",","each","key","in","the","dictionary","is","mapped","to","a","categorical","variable","named","``","f","''","{","EVENT_PREFIX","}","_","{","key","}","''","``",",","whose","value","at","each","timestamp","is","specified","by","the","corresponding","DataFrame",".","For","example",",","to","manually","specify","a","yearly","event","on","September","1","during","a","training\/forecast","period","that","spans","2020-2022",":",":","daily_event_df_dict","=","{","``","custom_event","''",":","pd.DataFrame","(","{","``","date","''",":","[","``","2020-09-01","''",",","``","2021-09-01","''",",","``","2022-09-01","''","]",",","``","label","''",":","[","``","is_event","''",",","``","is_event","''",",","``","is_event","''","]","}",")","}","It","'s","possible","to","specify","multiple","events","in","the","same","df",".","Two","events",",","``","``","sep","''","``","and","``","``","oct","''","``","are","specified","below","for","2020-2021",":",":","daily_event_df_dict","=","{","``","custom_event","''",":","pd.DataFrame","(","{","``","date","''",":","[","``","2020-09-01","''",",","``","2020-10-01","''",",","``","2021-09-01","''",",","``","2021-10-01","''","]",",","``","event_name","''",":","[","``","sep","''",",","``","oct","''",",","``","sep","''",",","``","oct","''","]","}",")","}","Use","multiple","keys","if","two","events","may","fall","on","the","same","date",".","These","events","must","be","in","separate","DataFrames",":",":","daily_event_df_dict","=","{","``","fixed_event","''",":","pd.DataFrame","(","{","``","date","''",":","[","``","2020-09-01","''",",","``","2021-09-01","''",",","``","2022-09-01","''","]",",","``","event_name","''",":","``","fixed_event","''","}",")",",","``","moving_event","''",":","pd.DataFrame","(","{","``","date","''",":","[","``","2020-09-01","''",",","``","2021-08-28","''",",","``","2022-09-03","''","]",",","``","event_name","''",":","``","moving_event","''","}",")",",","}","The","multiple","event","specification","can","be","used","even","if","events","never","overlap",".","An","equivalent","specification","to","the","second","example",":",":","daily_event_df_dict","=","{","``","sep","''",":","pd.DataFrame","(","{","``","date","''",":","[","``","2020-09-01","''",",","``","2021-09-01","''","]",",","``","event_name","''",":","``","is_event","''","}",")",",","``","oct","''",":","pd.DataFrame","(","{","``","date","''",":","[","``","2020-10-01","''",",","``","2021-10-01","''","]",",","``","event_name","''",":","``","is_event","''","}",")",",","}","Note",":","All","these","events","are","automatically","added","to","the","model",".","There","is","no","need","to","specify","them","in","``","extra_pred_cols","``","as","you","would","for","`","~greykite.algo.forecast.silverkite.forecast_silverkite.SilverkiteForecast.forecast","`",".","Note",":","Do","not","use","`","~greykite.common.constants.EVENT_DEFAULT","`","in","the","second","column",".","This","is","reserved","to","indicate","dates","that","do","not","correspond","to","an","event",".","changepoints",":","`","dict","`","[","`","str","`",",","`","dict","`","]","or","None",",","optional","Specifies","the","changepoint","configuration",".","Dictionary","with","the","following","optional","key",":","``","``","auto_growth","''","``",":","`","bool","`",",","default","False","Whether","to","automatically","infer","growth","configuration",".","If","True",",","the","growth","term","and","automatically","changepoint","detection","configuration","will","be","inferred","from","input","timeseries",",","and","the","following","parameters","will","be","ignored",":","*","``","``","growth_term","''","``","in","``","growth","``","dictionary","*","``","``","changepoints_dict","''","``","(","All","parameters","but","custom","changepoint","parameters","to","be","combined","with","automatically","detected","changepoints",".",")","For","detail",",","see","`","~greykite.algo.changepoint.adalasso.auto_changepoint_params.generate_trend_changepoint_detection_params","`",".","``","``","changepoints_dict","''","``",":","`","dict","`","or","None","or","a","list","of","such","values","for","grid","search","Changepoints","dictionary","passed","to","``","forecast_simple_silverkite","``",".","A","dictionary","with","the","following","optional","keys",":","``","``","method","''","``",":","`","str","`","The","method","to","locate","changepoints",".","Valid","options",":","-","``","uniform","''",".","Places","n_changepoints","evenly","spaced","changepoints","to","allow","growth","to","change",".","-","``","custom","''",".","Places","changepoints","at","the","specified","dates",".","-","``","auto","''",".","Automatically","detects","change","points",".","Additional","keys","to","provide","parameters","for","each","particular","method","are","described","below",".","``","``","continuous_time_col","''","``",":","`","str","`","or","None","Column","to","apply","`","growth_func","`","to",",","to","generate","changepoint","features","Typically",",","this","should","match","the","growth","term","in","the","model","``","``","growth_func","''","``",":","callable","or","None","Growth","function","(","`","numeric","`","-",">","`","numeric","`",")",".","Changepoint","features","are","created","by","applying","`","growth_func","`","to","``","continuous_time_col","''","with","offsets",".","If","None",",","uses","identity","function","to","use","`","continuous_time_col","`","directly","as","growth","term","If","changepoints_dict","[","``","method","''","]","==","``","uniform","''",",","this","other","key","is","required",":","``","``","n_changepoints","''","``",":","`","int","`","number","of","changepoints","to","evenly","space","across","training","period","If","changepoints_dict","[","``","method","''","]","==","``","custom","''",",","this","other","key","is","required",":","``","``","dates","''","``",":","`","list","`","[","`","int","`","or","`","float","`","or","`","str","`","or","`","datetime","`","]","Changepoint","dates",".","Must","be","parsable","by","pd.to_datetime",".","Changepoints","are","set","at","the","closest","time","on","or","after","these","dates","in","the","dataset",".","If","changepoints_dict","[","``","method","''","]","==","``","auto","''",",","optional","keys","can","be","passed","that","match","the","parameters","in","`","~greykite.algo.changepoint.adalasso.changepoint_detector.ChangepointDetector.find_trend_changepoints","`","(","except","``","df","``",",","``","time_col","``","and","``","value_col","``",",","which","are","already","known",")",".","To","add","manually","specified","changepoints","to","the","automatically","detected","ones",",","the","keys","``","dates","``",",","``","combine_changepoint_min_distance","``","and","``","keep_detected","``","can","be","specified",",","which","correspond","to","the","three","parameters","``","custom_changepoint_dates","``",",","``","min_distance","``","and","``","keep_detected","``","in","`","~greykite.algo.changepoint.adalasso.changepoints_utils.combine_detected_and_custom_trend_changepoints","`",".","``","``","seasonality_changepoints_dict","''","``",":","`","dict","`","or","None","or","a","list","of","such","values","for","grid","search","seasonality","changepoints","dictionary","passed","to","``","forecast_simple_silverkite","``",".","The","optional","keys","are","the","parameters","in","`","~greykite.algo.changepoint.adalasso.changepoint_detector.ChangepointDetector.find_seasonality_changepoints","`",".","You","do","n't","need","to","provide","``","df","``",",","``","time_col","``",",","``","value_col","``","or","``","trend_changepoints","``",",","since","they","are","passed","with","the","class","automatically",".","autoregression",":","`","dict","`","[","`","str","`",",","`","dict","`","]","or","None",",","optional","Specifies","the","autoregression","configuration",".","Dictionary","with","the","following","optional","keys",":","``","``","autoreg_dict","''","``",":","`","dict","`","or","`","str","`","or","None","or","a","list","of","such","values","for","grid","search","If","a","`","dict","`",":","A","dictionary","with","arguments","for","`","~greykite.common.features.timeseries_lags.build_autoreg_df","`",".","That","function","'s","parameter","``","value_col","``","is","inferred","from","the","input","of","current","function","``","self.forecast","``",".","Other","keys","are",":","``","``","lag_dict","''","``",":","`","dict","`","or","None","``","``","agg_lag_dict","''","``",":","`","dict","`","or","None","``","``","series_na_fill_func","''","``",":","callable","If","a","`","str","`",":","The","string","will","represent","a","method","and","a","dictionary","will","be","constructed","using","that","`","str","`",".","Currently","only","implemented","method","is","``","auto","''","which","uses","`","~greykite.algo.forecast.silverkite.SilverkiteForecast.__get_default_autoreg_dict","`","to","create","a","dictionary",".","See","more","details","for","above","parameters","in","`","~greykite.common.features.timeseries_lags.build_autoreg_df","`",".","``","``","simulation_num","''","``",":","`","int","`",",","default","10","The","number","of","simulations","to","use",".","Applies","only","if","any","of","the","lags","in","``","autoreg_dict","``","are","smaller","than","``","forecast_horizon","``",".","In","that","case",",","simulations","are","needed","to","generate","forecasts","and","prediction","intervals",".","``","``","fast_simulation","''","``",":","`","bool","`",",","default","False","Deterimes","if","fast","simulations","are","to","be","used",".","This","only","impacts","models","which","include","auto-regression",".","This","method","will","only","generate","one","simulation","without","any","error","being","added","and","then","add","the","error","using","the","volatility","model",".","The","advantage","is","a","major","boost","in","speed","during","inference","and","the","disadvantage","is","potentially","less","accurate","prediction","intervals",".","regressors",":","`","dict","`","[","`","str","`",",","`","any","`","]","or","None",",","optional","Specifies","the","regressors","to","include","in","the","model","(","e.g",".","macro-economic","factors",")",".","Dictionary","with","the","following","optional","keys",":","``","``","regressor_cols","''","``",":","`","list","`","[","`","str","`","]","or","None","or","a","list","of","such","values","for","grid","search","The","columns","in","``","df","``","to","use","as","regressors",".","Note","that","regressor","values","must","be","available","in","``","df","``","for","all","prediction","dates",".","Thus",",","``","df","``","will","contain","timestamps","for","both","training","and","future","prediction",".","*","regressors","must","be","available","on","all","dates","*","the","response","must","be","available","for","training","dates","(","metadata","[","``","value_col","''","]",")","Use","``","extra_pred_cols","``","to","specify","interactions","of","any","model","terms","with","the","regressors",".","lagged_regressors",":","`","dict","`","[","`","str","`",",","`","dict","`","]","or","None",",","optional","Specifies","the","lagged","regressors","configuration",".","Dictionary","with","the","following","optional","key",":","``","``","lagged_regressor_dict","''","``",":","`","dict","`","or","None","or","a","list","of","such","values","for","grid","search","A","dictionary","with","arguments","for","`","~greykite.common.features.timeseries_lags.build_autoreg_df_multi","`",".","The","keys","of","the","dictionary","are","the","target","lagged","regressor","column","names",".","It","can","leverage","the","regressors","included","in","``","df","``",".","The","value","of","each","key","is","either","a","`","dict","`","or","`","str","`",".","If","`","dict","`",",","it","has","the","following","keys",":","``","``","lag_dict","''","``",":","`","dict","`","or","None","``","``","agg_lag_dict","''","``",":","`","dict","`","or","None","``","``","series_na_fill_func","''","``",":","callable","If","`","str","`",",","it","represents","a","method","and","a","dictionary","will","be","constructed","using","that","`","str","`",".","Currently","the","only","implemented","method","is","``","auto","''","which","uses","``","SilverkiteForecast","``","'s","`","~greykite.algo.forecast.silverkite.SilverkiteForecast.__get_default_lagged_regressor_dict","`","to","create","a","dictionary","for","each","lagged","regressor",".","An","example",":",":","lagged_regressor_dict","=","{","``","regressor1","''",":","{","``","lag_dict","''",":","{","``","orders","''",":","[","1",",","2",",","3","]","}",",","``","agg_lag_dict","''",":","{","``","orders_list","''",":","[","[","7",",","7","*","2",",","7","*","3","]","]",",","``","interval_list","''",":","[","(","8",",","7","*","2",")","]","}",",","``","series_na_fill_func","''",":","lambda","s",":","s.bfill","(",")",".ffill","(",")","}",",","``","regressor2","''",":","``","auto","''","}","Check","the","docstring","of","`","~greykite.common.features.timeseries_lags.build_autoreg_df_multi","`","for","more","details","for","each","argument",".","uncertainty",":","`","dict","`","[","`","str","`",",","`","dict","`","]","or","None",",","optional","Along","with","``","coverage","``",",","specifies","the","uncertainty","interval","configuration",".","Use","``","coverage","``","to","set","interval","size",".","Use","``","uncertainty","``","to","tune","the","calculation",".","``","``","uncertainty_dict","''","``",":","`","str","`","or","`","dict","`","or","None","or","a","list","of","such","values","for","grid","search","``","auto","''","or","a","dictionary","on","how","to","fit","the","uncertainty","model",".","If","a","dictionary",",","valid","keys","are",":","``","``","uncertainty_method","''","``",":","`","str","`","The","title","of","the","method",".","Only","``","``","simple_conditional_residuals","''","``","is","implemented","in","`","~greykite.algo.common.ml_models.fit_ml_model","`","which","calculates","intervals","using","residuals",".","``","``","params","''","``",":","`","dict","`","A","dictionary","of","parameters","needed","for","the","requested","``","uncertainty_method","``",".","For","example",",","for","``","uncertainty_method=","''","simple_conditional_residuals","''","``",",","see","parameters","of","`","~greykite.algo.uncertainty.conditional.conf_interval.conf_interval","`",":","*","``","``","conditional_cols","''","``","*","``","``","quantiles","''","``","*","``","``","quantile_estimation_method","''","``","*","``","``","sample_size_thresh","''","``","*","``","``","small_sample_size_method","''","``","*","``","``","small_sample_size_quantile","''","``","The","default","value","for","``","quantiles","``","is","inferred","from","coverage",".","If","``","auto","''",",","see","`","~greykite.algo.forecast.silverkite.forecast_silverkite_helper.get_silverkite_uncertainty_dict","`","for","the","default","value",".","If","``","coverage","``","is","not","None","and","``","uncertainty_dict","``","is","not","provided",",","then","the","``","auto","''","setting","is","used",".","If","``","coverage","``","is","None","and","``","uncertainty_dict","``","is","None",",","then","no","intervals","are","returned",".","custom",":","`","dict","`","[","`","str","`",",","`","any","`","]","or","None",",","optional","Custom","parameters","that","do","n't","fit","the","categories","above",".","Dictionary","with","the","following","optional","keys",":","``","``","fit_algorithm_dict","''","``",":","`","dict","`","or","a","list","of","such","values","for","grid","search","How","to","fit","the","model",".","A","dictionary","with","the","following","optional","keys",".","``","``","fit_algorithm","''","``",":","`","str","`",",","optional",",","default","``","ridge","''","The","type","of","predictive","model","used","in","fitting",".","See","`","~greykite.algo.common.ml_models.fit_model_via_design_matrix","`","for","available","options","and","their","parameters",".","``","``","fit_algorithm_params","''","``",":","`","dict","`","or","None",",","optional",",","default","None","Parameters","passed","to","the","requested","fit_algorithm",".","If","None",",","uses","the","defaults","in","`","~greykite.algo.common.ml_models.fit_model_via_design_matrix","`",".","``","``","feature_sets_enabled","''","``",":","`","dict","`","[","`","str","`",",","`","bool","`","or","``","auto","''","or","None","]","or","`","bool","`","or","``","auto","''","or","None",";","or","a","list","of","such","values","for","grid","search","Whether","to","include","interaction","terms","and","categorical","variables","to","increase","model","flexibility",".","If","a","`","dict","`",",","boolean","values","indicate","whether","include","various","sets","of","features","in","the","model",".","The","following","keys","are","recognized","(","from","`","~greykite.algo.forecast.silverkite.constants.silverkite_column.SilverkiteColumn","`",")",":","``","``","COLS_HOUR_OF_WEEK","''","``",":","`","str","`","Constant","hour","of","week","effect","``","``","COLS_WEEKEND_SEAS","''","``",":","`","str","`","Daily","seasonality","interaction","with","is_weekend","``","``","COLS_DAY_OF_WEEK_SEAS","''","``",":","`","str","`","Daily","seasonality","interaction","with","day","of","week","``","``","COLS_TREND_DAILY_SEAS","''","``",":","`","str","`","Allow","daily","seasonality","to","change","over","time","by","is_weekend","``","``","COLS_EVENT_SEAS","''","``",":","`","str","`","Allow","sub-daily","event","effects","``","``","COLS_EVENT_WEEKEND_SEAS","''","``",":","`","str","`","Allow","sub-daily","event","effect","to","interact","with","is_weekend","``","``","COLS_DAY_OF_WEEK","''","``",":","`","str","`","Constant","day","of","week","effect","``","``","COLS_TREND_WEEKEND","''","``",":","`","str","`","Allow","trend","(","growth",",","changepoints",")","to","interact","with","is_weekend","``","``","COLS_TREND_DAY_OF_WEEK","''","``",":","`","str","`","Allow","trend","to","interact","with","day","of","week","``","``","COLS_TREND_WEEKLY_SEAS","''","``",":","`","str","`","Allow","weekly","seasonality","to","change","over","time","The","following","dictionary","values","are","recognized",":","-","True",":","include","the","feature","set","in","the","model","-","False",":","do","not","include","the","feature","set","in","the","model","-","None",":","do","not","include","the","feature","set","in","the","model","-","``","auto","''","or","not","provided",":","use","the","default","setting","based","on","data","frequency","and","size","If","not","a","`","dict","`",":","-","if","a","boolean",",","equivalent","to","a","dictionary","with","all","values","set","to","the","boolean",".","-","if","None",",","equivalent","to","a","dictionary","with","all","values","set","to","False",".","-","if","``","auto","''",",","equivalent","to","a","dictionary","with","all","values","set","to","``","auto","''",".","``","``","max_daily_seas_interaction_order","''","``",":","`","int","`","or","None","or","a","list","of","such","values","for","grid","search",",","default","5","Max","fourier","order","to","use","for","interactions","with","daily","seasonality",".","(","COLS_EVENT_SEAS",",","COLS_EVENT_WEEKEND_SEAS",",","COLS_WEEKEND_SEAS",",","COLS_DAY_OF_WEEK_SEAS",",","COLS_TREND_DAILY_SEAS",")",".","Model","includes","interactions","terms","specified","by","``","feature_sets_enabled","``","up","to","the","order","limited","by","this","value","and","the","available","order","from","``","seasonality","``",".","``","``","max_weekly_seas_interaction_order","''","``",":","`","int","`","or","None","or","a","list","of","such","values","for","grid","search",",","default","2","Max","fourier","order","to","use","for","interactions","with","weekly","seasonality","(","COLS_TREND_WEEKLY_SEAS",")",".","Model","includes","interactions","terms","specified","by","``","feature_sets_enabled","``","up","to","the","order","limited","by","this","value","and","the","available","order","from","``","seasonality","``",".","``","``","extra_pred_cols","''","``",":","`","list","`","[","`","str","`","]","or","None","or","a","list","of","such","values","for","grid","search",",","default","None","Names","of","extra","predictor","columns","to","pass","to","``","forecast_silverkite","``",".","The","standard","interactions","can","be","controlled","via","``","feature_sets_enabled","``","parameter",".","Accepts","any","valid","patsy","model","formula","term",".","Can","be","used","to","model","complex","interactions","of","time","features",",","events",",","seasonality",",","changepoints",",","regressors",".","Columns","should","be","generated","by","``","build_silverkite_features","``","or","included","with","input","data",".","These","are","added","to","any","features","already","included","by","``","feature_sets_enabled","``","and","terms","specified","by","``","model","``",".","``","``","drop_pred_cols","''","``",":","`","list","`","[","`","str","`","]","or","None",",","default","None","Names","of","predictor","columns","to","be","dropped","from","the","final","model",".","Ignored","if","None",".","``","``","explicit_pred_cols","''","``",":","`","list","`","[","`","str","`","]","or","None",",","default","None","Names","of","the","explicit","predictor","columns","which","will","be","the","only","variables","in","the","final","model",".","Note","that","this","overwrites","the","generated","predictors","in","the","model","and","may","include","new","terms","not","appearing","in","the","predictors","(","e.g",".","interaction","terms",")",".","Ignored","if","None",".","``","``","min_admissible_value","''","``",":","`","float","`","or","`","double","`","or","`","int","`","or","None",",","default","None","The","lowest","admissible","value","for","the","forecasts","and","prediction","intervals",".","Any","value","below","this","will","be","mapped","back","to","this","value",".","If","None",",","there","is","no","lower","bound",".","``","``","max_admissible_value","''","``",":","`","float","`","or","`","double","`","or","`","int","`","or","None",",","default","None","The","highest","admissible","value","for","the","forecasts","and","prediction","intervals",".","Any","value","above","this","will","be","mapped","back","to","this","value",".","If","None",",","there","is","no","upper","bound",".","``","``","normalize_method","''","``",":","`","str","`","or","None",",","default","None","The","normalization","method","for","feature","matrix",".","If","a","string","is","provided",",","it","will","be","used","as","the","normalization","method","in","`","~greykite.common.features.normalize.normalize_df","`",",","passed","via","the","argument","``","method","``",".","Available","values","are","``","statistical","''",",","``","zero_to_one","''",",","``","minus_half_to_half","''","and","``","zero_at_origin","''",".","See","that","function","for","more","details",".","hyperparameter_override",":","`","dict","`","[","`","str","`",",","`","any","`","]","or","None","or","`","list","`","[","`","dict","`","[","`","str","`",",","`","any","`","]","or","None","]",",","optional","After","the","above","model","components","are","used","to","create","a","hyperparameter","grid",",","the","result","is","updated","by","this","dictionary",",","to","create","new","keys","or","override","existing","ones",".","Allows","for","complete","customization","of","the","grid","search",".","Keys","should","have","format","``","{","named_step","}","__","{","parameter_name","}","``","for","the","named","steps","of","the","`","sklearn.pipeline.Pipeline","`","returned","by","this","function",".","See","`","sklearn.pipeline.Pipeline","`",".","For","example",":",":","hyperparameter_override=","{","``","estimator__silverkite","''",":","SimpleSilverkiteForecast","(",")",",","``","estimator__growth_term","''",":","``","linear","''",",","``","input__response__null__impute_algorithm","''",":","``","ts_interpolate","''",",","``","input__response__null__impute_params","''",":","{","``","orders","''",":","[","7",",","14","]","}",",","``","input__regressors_numeric__normalize__normalize_algorithm","''",":","``","RobustScaler","''",",","}","If","a","list","of","dictionaries",",","grid","search","will","be","done","for","each","dictionary","in","the","list",".","Each","dictionary","in","the","list","override","the","defaults",".","This","enables","grid","search","over","specific","combinations","of","parameters","to","reduce","the","search","space",".","*","For","example",",","the","first","dictionary","could","define","combinations","of","parameters","for","a","``","complex","''","model",",","and","the","second","dictionary","could","define","combinations","of","parameters","for","a","``","simple","''","model",",","to","prevent","mixed","combinations","of","simple","and","complex",".","*","Or","the","first","dictionary","could","grid","search","over","fit","algorithm",",","and","the","second","dictionary","could","use","a","single","fit","algorithm","and","grid","search","over","seasonality",".","The","result","is","passed","as","the","``","param_distributions","``","parameter","to","`","sklearn.model_selection.RandomizedSearchCV","`",".","model_template",":","`","str","`",",","`","list","`","[","`","str","`","]","or","None",",","default","None","The","simple","silverkite","template","support","single","templates",",","multi","templates","or","a","list","of","single\/multi","templates",".","A","valid","single","template","must","be","one","of","``","SILVERKITE","``",",","``","SILVERKITE_MONTHLY","``",",","``","SILVERKITE_DAILY_1_CONFIG_1","``",",","``","SILVERKITE_DAILY_1_CONFIG_2","``",",","``","SILVERKITE_DAILY_1_CONFIG_3","``",",","``","SILVERKITE_EMPTY","``",",","or","that","consists","of","{","FREQ","}","_SEAS_","{","VAL","}","_GR_","{","VAL","}","_CP_","{","VAL","}","_HOL_","{","VAL","}","_FEASET_","{","VAL","}","_ALGO_","{","VAL","}","_AR_","{","VAL","}","For","example",",","we","have","DAILY_SEAS_NM_GR_LINEAR_CP_LT_HOL_NONE_FEASET_ON_ALGO_RIDGE_AR_ON",".","The","valid","FREQ","and","VAL","can","be","found","at","`","~greykite.framework.templates.simple_silverkite_template_config","`",".","The","components","stand","for","seasonality",",","growth",",","changepoints_dict",",","events",",","feature_sets_enabled",",","fit_algorithm","and","autoregression","in","`","~greykite.framework.templates.autogen.forecast_config.ModelComponentsParam","`",",","which","is","used","in","`","~greykite.framework.templates.simple_silverkite_template.SimpleSilverkiteTemplate","`",".","Users","are","allowed","to","-","Omit","any","number","of","component-value","pairs",",","and","the","omitted","will","be","filled","with","default","values",".","-","Switch","the","order","of","different","component-value","pairs",".","A","valid","multi","template","must","belong","to","`","~greykite.framework.templates.simple_silverkite_template_config.MULTI_TEMPLATES","`","or","must","be","a","list","of","single","or","multi","template","names","."]
docstr: Checks the template name is valid and whether it is single or multi template.
  Raises an error if the template is not recognized.
  
  A valid single template must be one of ``SILVERKITE``, ``SILVERKITE_MONTHLY``,
  ``SILVERKITE_DAILY_1_CONFIG_1``, ``SILVERKITE_DAILY_1_CONFIG_2``, ``SILVERKITE_DAILY_1_CONFIG_3``,
  ``SILVERKITE_EMPTY``, or that consists of
  
      {FREQ}_SEAS_{VAL}_GR_{VAL}_CP_{VAL}_HOL_{VAL}_FEASET_{VAL}_ALGO_{VAL}_AR_{VAL}
  
  For example, we have DAILY_SEAS_NM_GR_LINEAR_CP_LT_HOL_NONE_FEASET_ON_ALGO_RIDGE_AR_ON. The valid FREQ and VAL
  can be found at `~greykite.framework.templates.simple_silverkite_template_config`. The components stand for seasonality,
  growth, changepoints_dict, events, feature_sets_enabled, fit_algorithm and autoregression in
  `~greykite.framework.templates.autogen.forecast_config.ModelComponentsParam`, which is used in
  `~greykite.framework.templates.simple_silverkite_template.SimpleSilverkiteTemplate`. Users are allowed to
  
      - Omit any number of component-value pairs, and the omitted will be filled with default values.
      - Switch the order of different component-value pairs.
  
  A valid multi template must belong to
  `~greykite.framework.templates.simple_silverkite_template_config.MULTI_TEMPLATES`
  or must be a list of single or multi template names.
  
  Parameters
  ----------
  template : `str`, `SimpleSilverkiteTemplateName` or `list`[`str`, `SimpleSilverkiteTemplateName`]
      The ``model_template`` parameter fed into
      `~greykite.framework.templates.autogen.forecast_config.ForecastConfig`.
      for simple silverkite templates.
  
  Returns
  -------
  template_type : `str`
      "single" or "multi".
docstr_tok: ["Checks","the","template","name","is","valid","and","whether","it","is","single","or","multi","template",".","Raises","an","error","if","the","template","is","not","recognized",".","A","valid","single","template","must","be","one","of","``","SILVERKITE","``",",","``","SILVERKITE_MONTHLY","``",",","``","SILVERKITE_DAILY_1_CONFIG_1","``",",","``","SILVERKITE_DAILY_1_CONFIG_2","``",",","``","SILVERKITE_DAILY_1_CONFIG_3","``",",","``","SILVERKITE_EMPTY","``",",","or","that","consists","of","{","FREQ","}","_SEAS_","{","VAL","}","_GR_","{","VAL","}","_CP_","{","VAL","}","_HOL_","{","VAL","}","_FEASET_","{","VAL","}","_ALGO_","{","VAL","}","_AR_","{","VAL","}","For","example",",","we","have","DAILY_SEAS_NM_GR_LINEAR_CP_LT_HOL_NONE_FEASET_ON_ALGO_RIDGE_AR_ON",".","The","valid","FREQ","and","VAL","can","be","found","at","`","~greykite.framework.templates.simple_silverkite_template_config","`",".","The","components","stand","for","seasonality",",","growth",",","changepoints_dict",",","events",",","feature_sets_enabled",",","fit_algorithm","and","autoregression","in","`","~greykite.framework.templates.autogen.forecast_config.ModelComponentsParam","`",",","which","is","used","in","`","~greykite.framework.templates.simple_silverkite_template.SimpleSilverkiteTemplate","`",".","Users","are","allowed","to","-","Omit","any","number","of","component-value","pairs",",","and","the","omitted","will","be","filled","with","default","values",".","-","Switch","the","order","of","different","component-value","pairs",".","A","valid","multi","template","must","belong","to","`","~greykite.framework.templates.simple_silverkite_template_config.MULTI_TEMPLATES","`","or","must","be","a","list","of","single","or","multi","template","names",".","Parameters","--","--","--","--","--","template",":","`","str","`",",","`","SimpleSilverkiteTemplateName","`","or","`","list","`","[","`","str","`",",","`","SimpleSilverkiteTemplateName","`","]","The","``","model_template","``","parameter","fed","into","`","~greykite.framework.templates.autogen.forecast_config.ForecastConfig","`",".","for","simple","silverkite","templates",".","Returns","--","--","--","-","template_type",":","`","str","`","``","single","''","or","``","multi","''","."]
code: def check_template_type(self, template):
      """Checks the template name is valid and whether it is single or multi template.
      Raises an error if the template is not recognized.
  
      A valid single template must be one of ``SILVERKITE``, ``SILVERKITE_MONTHLY``,
      ``SILVERKITE_DAILY_1_CONFIG_1``, ``SILVERKITE_DAILY_1_CONFIG_2``, ``SILVERKITE_DAILY_1_CONFIG_3``,
      ``SILVERKITE_EMPTY``, or that consists of
  
          {FREQ}_SEAS_{VAL}_GR_{VAL}_CP_{VAL}_HOL_{VAL}_FEASET_{VAL}_ALGO_{VAL}_AR_{VAL}
  
      For example, we have DAILY_SEAS_NM_GR_LINEAR_CP_LT_HOL_NONE_FEASET_ON_ALGO_RIDGE_AR_ON. The valid FREQ and VAL
      can be found at `~greykite.framework.templates.simple_silverkite_template_config`. The components stand for seasonality,
      growth, changepoints_dict, events, feature_sets_enabled, fit_algorithm and autoregression in
      `~greykite.framework.templates.autogen.forecast_config.ModelComponentsParam`, which is used in
      `~greykite.framework.templates.simple_silverkite_template.SimpleSilverkiteTemplate`. Users are allowed to
  
          - Omit any number of component-value pairs, and the omitted will be filled with default values.
          - Switch the order of different component-value pairs.
  
      A valid multi template must belong to
      `~greykite.framework.templates.simple_silverkite_template_config.MULTI_TEMPLATES`
      or must be a list of single or multi template names.
  
      Parameters
      ----------
      template : `str`, `SimpleSilverkiteTemplateName` or `list`[`str`, `SimpleSilverkiteTemplateName`]
          The ``model_template`` parameter fed into
          `~greykite.framework.templates.autogen.forecast_config.ForecastConfig`.
          for simple silverkite templates.
  
      Returns
      -------
      template_type : `str`
          "single" or "multi".
      """
      if (
          template
          in [
              "SILVERKITE",
              "SILVERKITE_MONTHLY",
              "SILVERKITE_DAILY_1_CONFIG_1",
              "SILVERKITE_DAILY_1_CONFIG_2",
              "SILVERKITE_DAILY_1_CONFIG_3",
              "SILVERKITE_EMPTY",
          ]
          or isinstance(
              template, self.constants.SimpleSilverkiteTemplateOptions
          )
          or template.split("_")[0] in self.constants.VALID_FREQ
      ):
          return "single"
      if template in self.constants.MULTI_TEMPLATES:
          return "multi"
      raise ValueError(
          f"The template name {template} is not recognized. It must be 'SILVERKITE', "
          f"'SILVERKITE_DAILY_1_CONFIG_1', 'SILVERKITE_DAILY_1_CONFIG_2', 'SILVERKITE_DAILY_1_CONFIG_3', 'SILVERKITE_EMPTY', "
          f"a `SimpleSilverkiteTemplateOptions` data class, of the type"
          " '{FREQ}_SEAS_{VAL}_GR_{VAL}_CP_{VAL}_HOL_{VAL}_FEASET_{VAL}_ALGO_{VAL}_AR_{VAL}' or"
          f" belong to {list(self.constants.MULTI_TEMPLATES.keys())}."
      )
  
imports: import dataclasses
  import warnings
  from typing import Type
  import numpy
  from greykite.algo.forecast.silverkite.constants.silverkite_holiday import SilverkiteHoliday
  from greykite.common.features.timeseries_lags import build_autoreg_df_multi
  from greykite.common.python_utils import dictionaries_values_to_lists
  from greykite.common.python_utils import unique_dict_in_list
  from greykite.common.python_utils import unique_in_list
  from greykite.common.python_utils import update_dictionaries
  from greykite.framework.templates.autogen.forecast_config import ModelComponentsParam
  from greykite.framework.templates.base_template import BaseTemplate
  from greykite.framework.templates.simple_silverkite_template_config import SimpleSilverkiteTemplateConstants
  from greykite.sklearn.estimator.base_forecast_estimator import BaseForecastEstimator
  from greykite.sklearn.estimator.simple_silverkite_estimator import SimpleSilverkiteEstimator
label_desc: Use image node_id 11 for calling the SimpleSilverkiteTemplate obj's underlying member method code with example usage: obj.check_template_type(template) and returns: str, str