docstr: Exponential Smoothing
  
  This is a wrapper around
  `statsmodels  Holt-Winters' Exponential Smoothing
  <https://www.statsmodels.org/stable/generated/statsmodels.tsa.holtwinters.ExponentialSmoothing.html>`_;
  we refer to this link for the original and more complete documentation of the parameters.
  
  `trend` must be a ``ModelMode`` Enum member. You can access the Enum with
   ``from darts.utils.utils import ModelMode``.
  `seasonal` must be a ``SeasonalityMode`` Enum member. You can access the Enum with
  ``from darts.utils.utils import SeasonalityMode``.
  
  ``ExponentialSmoothing(trend=ModelMode.NONE, seasonal=SeasonalityMode.NONE)`` corresponds to a single
  exponential smoothing.
  ``ExponentialSmoothing(trend=ModelMode.ADDITIVE, seasonal=SeasonalityMode.NONE)`` corresponds to a Holt's
  exponential smoothing.
  
  Please note that automatic `seasonal_period` selection (setting the `seasonal_periods` parameter equal to
  `None`) can sometimes lead to errors if the input time series is too short. In these cases we suggest to
  manually set the `seasonal_periods` parameter to a positive integer.
  
  Parameters
  ----------
  trend
      Type of trend component. Either ``ModelMode.ADDITIVE``, ``ModelMode.MULTIPLICATIVE``, ``ModelMode.NONE``,
      or ``None``. Defaults to ``ModelMode.ADDITIVE``.
  damped
      Should the trend component be damped. Defaults to False.
  seasonal
      Type of seasonal component. Either ``SeasonalityMode.ADDITIVE``, ``SeasonalityMode.MULTIPLICATIVE``,
      ``SeasonalityMode.NONE``, or ``None``. Defaults to ``SeasonalityMode.ADDITIVE``.
  seasonal_periods
      The number of periods in a complete seasonal cycle, e.g., 4 for quarterly data or 7 for daily
      data with a weekly cycle. If not set, inferred from frequency of the series.
  kwargs
      Some optional keyword arguments that will be used to call
      :func:`statsmodels.tsa.holtwinters.ExponentialSmoothing()`.
      See `the documentation
      <https://www.statsmodels.org/stable/generated/statsmodels.tsa.holtwinters.ExponentialSmoothing.html>`_.
  fit_kwargs
      Some optional keyword arguments that will be used to call
      :func:`statsmodels.tsa.holtwinters.ExponentialSmoothing.fit()`.
      See `the documentation
      <https://www.statsmodels.org/stable/generated/statsmodels.tsa.holtwinters.ExponentialSmoothing.fit.html>`_.
  
  Examples
  --------
  >>> from darts.datasets import AirPassengersDataset
  >>> from darts.models import ExponentialSmoothing
  >>> from darts.utils.utils import ModelMode, SeasonalityMode
  >>> series = AirPassengersDataset().load()
  >>> # using Holt's exponential smoothing
  >>> model = ExponentialSmoothing(trend=ModelMode.ADDITIVE, seasonal=SeasonalityMode.MULTIPLICATIVE)
  >>> model.fit(series)
  >>> pred = model.predict(6)
  >>> pred.values()
  array([[445.24283838],
         [418.22618932],
         [465.31305075],
         [494.95129261],
         [505.4770514 ],
         [573.31519186]])
docstr_tok: ["Exponential","Smoothing","This","is","a","wrapper","around","`","statsmodels","Holt-Winters","'","Exponential","Smoothing","<","https",":","\/\/www.statsmodels.org\/stable\/generated\/statsmodels.tsa.holtwinters.ExponentialSmoothing.html",">","`","_",";","we","refer","to","this","link","for","the","original","and","more","complete","documentation","of","the","parameters",".","`","trend","`","must","be","a","``","ModelMode","``","Enum","member",".","You","can","access","the","Enum","with","``","from","darts.utils.utils","import","ModelMode","``",".","`","seasonal","`","must","be","a","``","SeasonalityMode","``","Enum","member",".","You","can","access","the","Enum","with","``","from","darts.utils.utils","import","SeasonalityMode","``",".","``","ExponentialSmoothing","(","trend=ModelMode.NONE",",","seasonal=SeasonalityMode.NONE",")","``","corresponds","to","a","single","exponential","smoothing",".","``","ExponentialSmoothing","(","trend=ModelMode.ADDITIVE",",","seasonal=SeasonalityMode.NONE",")","``","corresponds","to","a","Holt's","exponential","smoothing",".","Please","note","that","automatic","`","seasonal_period","`","selection","(","setting","the","`","seasonal_periods","`","parameter","equal","to","`","None","`",")","can","sometimes","lead","to","errors","if","the","input","time","series","is","too","short",".","In","these","cases","we","suggest","to","manually","set","the","`","seasonal_periods","`","parameter","to","a","positive","integer",".","Parameters","--","--","--","--","--","trend","Type","of","trend","component",".","Either","``","ModelMode.ADDITIVE","``",",","``","ModelMode.MULTIPLICATIVE","``",",","``","ModelMode.NONE","``",",","or","``","None","``",".","Defaults","to","``","ModelMode.ADDITIVE","``",".","damped","Should","the","trend","component","be","damped",".","Defaults","to","False",".","seasonal","Type","of","seasonal","component",".","Either","``","SeasonalityMode.ADDITIVE","``",",","``","SeasonalityMode.MULTIPLICATIVE","``",",","``","SeasonalityMode.NONE","``",",","or","``","None","``",".","Defaults","to","``","SeasonalityMode.ADDITIVE","``",".","seasonal_periods","The","number","of","periods","in","a","complete","seasonal","cycle",",","e.g.",",","4","for","quarterly","data","or","7","for","daily","data","with","a","weekly","cycle",".","If","not","set",",","inferred","from","frequency","of","the","series",".","kwargs","Some","optional","keyword","arguments","that","will","be","used","to","call",":","func",":","`","statsmodels.tsa.holtwinters.ExponentialSmoothing","(",")","`",".","See","`","the","documentation","<","https",":","\/\/www.statsmodels.org\/stable\/generated\/statsmodels.tsa.holtwinters.ExponentialSmoothing.html",">","`","_",".","fit_kwargs","Some","optional","keyword","arguments","that","will","be","used","to","call",":","func",":","`","statsmodels.tsa.holtwinters.ExponentialSmoothing.fit","(",")","`",".","See","`","the","documentation","<","https",":","\/\/www.statsmodels.org\/stable\/generated\/statsmodels.tsa.holtwinters.ExponentialSmoothing.fit.html",">","`","_",".","Examples","--","--","--","--",">",">",">","from","darts.datasets","import","AirPassengersDataset",">",">",">","from","darts.models","import","ExponentialSmoothing",">",">",">","from","darts.utils.utils","import","ModelMode",",","SeasonalityMode",">",">",">","series","=","AirPassengersDataset","(",")",".load","(",")",">",">",">","#","using","Holt","'s","exponential","smoothing",">",">",">","model","=","ExponentialSmoothing","(","trend=ModelMode.ADDITIVE",",","seasonal=SeasonalityMode.MULTIPLICATIVE",")",">",">",">","model.fit","(","series",")",">",">",">","pred","=","model.predict","(","6",")",">",">",">","pred.values","(",")","array","(","[","[","445.24283838","]",",","[","418.22618932","]",",","[","465.31305075","]",",","[","494.95129261","]",",","[","505.4770514","]",",","[","573.31519186","]","]",")"]
code: def __init__(
      self,
      trend: Optional[ModelMode] = ModelMode.ADDITIVE,
      damped: Optional[bool] = False,
      seasonal: Optional[SeasonalityMode] = SeasonalityMode.ADDITIVE,
      seasonal_periods: Optional[int] = None,
      random_state: int = 0,
      kwargs: Optional[Dict[str, Any]] = None,
      **fit_kwargs,
  ):
      """Exponential Smoothing
  
      This is a wrapper around
      `statsmodels  Holt-Winters' Exponential Smoothing
      <https://www.statsmodels.org/stable/generated/statsmodels.tsa.holtwinters.ExponentialSmoothing.html>`_;
      we refer to this link for the original and more complete documentation of the parameters.
  
      `trend` must be a ``ModelMode`` Enum member. You can access the Enum with
       ``from darts.utils.utils import ModelMode``.
      `seasonal` must be a ``SeasonalityMode`` Enum member. You can access the Enum with
      ``from darts.utils.utils import SeasonalityMode``.
  
      ``ExponentialSmoothing(trend=ModelMode.NONE, seasonal=SeasonalityMode.NONE)`` corresponds to a single
      exponential smoothing.
      ``ExponentialSmoothing(trend=ModelMode.ADDITIVE, seasonal=SeasonalityMode.NONE)`` corresponds to a Holt's
      exponential smoothing.
  
      Please note that automatic `seasonal_period` selection (setting the `seasonal_periods` parameter equal to
      `None`) can sometimes lead to errors if the input time series is too short. In these cases we suggest to
      manually set the `seasonal_periods` parameter to a positive integer.
  
      Parameters
      ----------
      trend
          Type of trend component. Either ``ModelMode.ADDITIVE``, ``ModelMode.MULTIPLICATIVE``, ``ModelMode.NONE``,
          or ``None``. Defaults to ``ModelMode.ADDITIVE``.
      damped
          Should the trend component be damped. Defaults to False.
      seasonal
          Type of seasonal component. Either ``SeasonalityMode.ADDITIVE``, ``SeasonalityMode.MULTIPLICATIVE``,
          ``SeasonalityMode.NONE``, or ``None``. Defaults to ``SeasonalityMode.ADDITIVE``.
      seasonal_periods
          The number of periods in a complete seasonal cycle, e.g., 4 for quarterly data or 7 for daily
          data with a weekly cycle. If not set, inferred from frequency of the series.
      kwargs
          Some optional keyword arguments that will be used to call
          :func:`statsmodels.tsa.holtwinters.ExponentialSmoothing()`.
          See `the documentation
          <https://www.statsmodels.org/stable/generated/statsmodels.tsa.holtwinters.ExponentialSmoothing.html>`_.
      fit_kwargs
          Some optional keyword arguments that will be used to call
          :func:`statsmodels.tsa.holtwinters.ExponentialSmoothing.fit()`.
          See `the documentation
          <https://www.statsmodels.org/stable/generated/statsmodels.tsa.holtwinters.ExponentialSmoothing.fit.html>`_.
  
      Examples
      --------
      >>> from darts.datasets import AirPassengersDataset
      >>> from darts.models import ExponentialSmoothing
      >>> from darts.utils.utils import ModelMode, SeasonalityMode
      >>> series = AirPassengersDataset().load()
      >>> # using Holt's exponential smoothing
      >>> model = ExponentialSmoothing(trend=ModelMode.ADDITIVE, seasonal=SeasonalityMode.MULTIPLICATIVE)
      >>> model.fit(series)
      >>> pred = model.predict(6)
      >>> pred.values()
      array([[445.24283838],
             [418.22618932],
             [465.31305075],
             [494.95129261],
             [505.4770514 ],
             [573.31519186]])
      """
      super().__init__()
      self.trend = trend
      self.damped = damped
      self.seasonal = seasonal
      self.infer_seasonal_periods = seasonal_periods is None
      self.seasonal_periods = seasonal_periods
      self.constructor_kwargs = dict() if kwargs is None else kwargs
      self.fit_kwargs = fit_kwargs
      self.model = None
      np.random.seed(random_state)
  
file_path: darts/darts/models/forecasting/exponential_smoothing.py
imports: from typing import Any, Dict, Optional
  import numpy
  import statsmodels.tsa.holtwinters
  from darts.logging import get_logger
  from darts.models.forecasting.forecasting_model import LocalForecastingModel
  from darts.timeseries import TimeSeries
  from darts.utils.utils import ModelMode, SeasonalityMode
label_desc: Use image node_id 1 to create a new ExponentialSmoothing object from inherited base classes: LocalForecastingModel with example: obj = ExponentialSmoothing(trend, damped, seasonal, seasonal_periods, random_state, kwargs)