class_docstr: Intermediate base class for distributional prediction metrics/scores.
  
  Developer note:
  Experimental and overrides public methods of _BaseProbaForecastingErrorMetric.
  This should be refactored into one base class.
class_docstr_tok: ["Intermediate","base","class","for","distributional","prediction","metrics\/scores",".","Developer","note",":","Experimental","and","overrides","public","methods","of","_BaseProbaForecastingErrorMetric",".","This","should","be","refactored","into","one","base","class","."]
docstr: Evaluate the desired metric on given inputs.
  
  Parameters
  ----------
  y_true : pd.Series, pd.DataFrame or np.array of shape (fh,) or                 (fh, n_outputs) where fh is the forecasting horizon
      Ground truth (correct) target values.
  
  y_pred : return object of probabilistic predictition method scitype:y_pred
      must be at fh and for variables equal to those in y_true
  
  multioutput : string "uniform_average" or "raw_values" determines how            multioutput results will be treated.
  
  Returns
  -------
  loss : float or 1-column pd.DataFrame with calculated metric value(s)
      float if multioutput = "uniform_average"
      metric is always averaged (arithmetic) over fh values
docstr_tok: ["Evaluate","the","desired","metric","on","given","inputs",".","Parameters","--","--","--","--","--","y_true",":","pd.Series",",","pd.DataFrame","or","np.array","of","shape","(","fh",",",")","or","(","fh",",","n_outputs",")","where","fh","is","the","forecasting","horizon","Ground","truth","(","correct",")","target","values",".","y_pred",":","return","object","of","probabilistic","predictition","method","scitype",":","y_pred","must","be","at","fh","and","for","variables","equal","to","those","in","y_true","multioutput",":","string","``","uniform_average","''","or","``","raw_values","''","determines","how","multioutput","results","will","be","treated",".","Returns","--","--","--","-","loss",":","float","or","1-column","pd.DataFrame","with","calculated","metric","value","(","s",")","float","if","multioutput","=","``","uniform_average","''","metric","is","always","averaged","(","arithmetic",")","over","fh","values"]
code: def evaluate(self, y_true, y_pred, multioutput=None, **kwargs):
      """Evaluate the desired metric on given inputs.
  
          Parameters
          ----------
          y_true : pd.Series, pd.DataFrame or np.array of shape (fh,) or \
                  (fh, n_outputs) where fh is the forecasting horizon
              Ground truth (correct) target values.
  
          y_pred : return object of probabilistic predictition method scitype:y_pred
              must be at fh and for variables equal to those in y_true
  
          multioutput : string "uniform_average" or "raw_values" determines how\
              multioutput results will be treated.
  
          Returns
          -------
          loss : float or 1-column pd.DataFrame with calculated metric value(s)
              float if multioutput = "uniform_average"
              metric is always averaged (arithmetic) over fh values
          """
      index_df = self.evaluate_by_index(y_true, y_pred, multioutput)
      out_df = pd.DataFrame(index_df.mean(axis=0)).T
      out_df.columns = index_df.columns
  
      if multioutput == "uniform_average":
          out_df = _coerce_to_scalar(out_df)
      return out_df
  
imports: from logging import warning
  import numpy
  import pandas
  from pandas.api.types import is_numeric_dtype
  from sklearn.utils import check_array, check_consistent_length
  from sktime.datatypes import check_is_scitype, convert, convert_to
  from sktime.performance_metrics.forecasting._classes import BaseForecastingErrorMetric
  from sktime.performance_metrics.forecasting._coerce import _coerce_to_scalar
label_desc: Use image node_id 1 for calling the _BaseDistrForecastingMetric obj's underlying member method code with example usage: obj.evaluate(y_true, y_pred, multioutput) and returns: out_df