code: def fit(
      self,
      df,
      point_method=None,
      keep_samples=True,
      sampling_temperature=1.0,
      **kwargs,
  ):
      super().fit(
          df, sampling_temperature=sampling_temperature, **kwargs
      )
      self._point_method = point_method
  
      if point_method is not None:
          if point_method not in [
              PredictMethod.MEAN.value,
              PredictMethod.MEDIAN.value,
          ]:
              raise ForecasterException(
                  "Invalid point estimate method."
              )
  
      mean_posteriors = {}
      median_posteriors = {}
  
      # for each model param, aggregate using `method`
      for param_name in self._model.get_model_param_names():
          param_ndarray = self._posterior_samples[param_name]
          mean_posteriors.update(
              {
                  param_name: np.mean(
                      param_ndarray, axis=0, keepdims=True
                  )
              },
          )
          median_posteriors.update(
              {
                  param_name: np.median(
                      param_ndarray, axis=0, keepdims=True
                  )
              },
          )
  
      self._point_posteriors[PredictMethod.MEAN.value] = mean_posteriors
      self._point_posteriors[
          PredictMethod.MEDIAN.value
      ] = median_posteriors
  
      if point_method is not None and not keep_samples:
          self._posterior_samples = {}
  
      self.load_extra_methods()
  
      return self
  
file_path: orbit/orbit/forecaster/svi.py
imports: import numpy
  import pandas
  from functools import partial
  from ..constants.constants import PredictMethod, PredictionKeys
  from ..exceptions import ForecasterException
  from ..utils.predictions import prepend_date_column, compute_percentiles
  from .forecaster import Forecaster
label_desc: Use image node_id 3 for calling the SVIForecaster obj's underlying member method code with example usage: obj.fit(df, point_method, keep_samples, sampling_temperature) and returns: self