class_docstr: Croston's method for forecasting intermittent time series.
  
  Implements the method proposed by Croston in [1]_ and described in [2]_.
  
  Croston's method is a modification of (vanilla) exponential smoothing to handle
  intermittent time series. A time series is considered intermittent if many
  of its values are zero and the gaps between non-zero entries are not periodic.
  
  Croston's method will predict a constant value for all future times, so
  Croston's method essentially provides another notion for the average value
  of a time series.
  
  The method is (equivalent to) the following:
  
  - Let :math:`v_0,\ldots,v_n` be the non-zero values of the time series
  - Let :math:`v` be the exponentially smoothed average of :math:`v_0,\ldots,v_n`
  - Let :math:`z_0,\ldots,z_n` be the number of consecutive zeros plus 1 between
    the :math:`v_i` in the original time series.
  - Let :math:`z` be the exponentially smoothed average of :math:`z_0,\ldots,z_n`
  - Then the forecast is :math:`\frac{v}{z}`
  
  The intuition is that :math:`v` is a weighted average of the non-zero time
  series values and :math:`\frac{1}{z}` estimates the probability of getting a
  non-zero value.
  
  Example to illustrate the :math:`v` and :math:`z` notation.
  
  - If the original time series is :math:`0,0,2,7,0,0,0,-5` then:
  
      - The :math:`v`'s are :math:`2,7,-5`
      - The :math:`z`'s are :math:`3,1,4`
  
  Parameters
  ----------
  smoothing : float, default = 0.1
      Smoothing parameter in exponential smoothing
  
  Examples
  --------
  >>> from sktime.forecasting.croston import Croston
  >>> from sktime.datasets import load_PBS_dataset
  >>> y = load_PBS_dataset()
  >>> forecaster = Croston(smoothing=0.1)
  >>> forecaster.fit(y)
  Croston(...)
  >>> y_pred = forecaster.predict(fh=[1,2,3])
  
  See Also
  --------
  ExponentialSmoothing
  
  References
  ----------
  .. [1] J. D. Croston. Forecasting and stock control for intermittent demands.
     Operational Research Quarterly (1970-1977), 23(3):pp. 289–303, 1972.
  .. [2] N. Vandeput. Forecasting Intermittent Demand with the Croston Model.
     https://towardsdatascience.com/croston-forecast-model-for-intermittent-demand-360287a17f5f
docstr: Predict forecast.
  
  Parameters
  ----------
  fh : int, list or np.array, optional (default=None)
      The forecasters horizon with the steps ahead to to predict.
  X : pd.DataFrame, optional (default=None)
      Exogenous variables are ignored.
  
  Returns
  -------
  forecast : pd.series
      Predicted forecasts.
docstr_tok: ["Predict","forecast",".","Parameters","--","--","--","--","--","fh",":","int",",","list","or","np.array",",","optional","(","default=None",")","The","forecasters","horizon","with","the","steps","ahead","to","to","predict",".","X",":","pd.DataFrame",",","optional","(","default=None",")","Exogenous","variables","are","ignored",".","Returns","--","--","--","-","forecast",":","pd.series","Predicted","forecasts","."]
code: def _predict(
      self,
      fh=None,
      X=None,
  ):
      """Predict forecast.
  
      Parameters
      ----------
      fh : int, list or np.array, optional (default=None)
          The forecasters horizon with the steps ahead to to predict.
      X : pd.DataFrame, optional (default=None)
          Exogenous variables are ignored.
  
      Returns
      -------
      forecast : pd.series
          Predicted forecasts.
      """
      len_fh = len(self.fh)
      f = self._f
  
      # Predicting future forecasts:to_numpy()
      y_pred = np.full(len_fh, f[-1])
  
      index = self.fh.to_absolute_index(self.cutoff)
      return pd.Series(y_pred, index=index, name=self._y.name)
  
file_path: sktime/sktime/forecasting/croston.py
imports: import numpy
  import pandas
  from sktime.forecasting.base import BaseForecaster
label_desc: Use image node_id 3 for calling the Croston obj's underlying member method code with example usage: obj._predict(fh, X) and returns: pd