code: def _percentage_error(y_true, y_pred, symmetric=False):
      """Percentage error.
  
      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 : pd.Series, pd.DataFrame or np.array of shape (fh,) or (fh, n_outputs) \
               where fh is the forecasting horizon
          Forecasted values.
  
      symmetric : bool, default = False
          Whether to calculate symmetric percentage error.
  
      Returns
      -------
      percentage_error : float
  
      References
      ----------
      Hyndman, R. J and Koehler, A. B. (2006). "Another look at measures of \
      forecast accuracy", International Journal of Forecasting, Volume 22, Issue 4.
      """
      if symmetric:
          # Alternatively could use np.abs(y_true + y_pred) in denom
          # Results will be different if y_true and y_pred have different signs
          percentage_error = (
              2
              * np.abs(y_true - y_pred)
              / np.maximum(np.abs(y_true) + np.abs(y_pred), EPS)
          )
      else:
          percentage_error = (y_true - y_pred) / np.maximum(
              np.abs(y_true), EPS
          )
      return percentage_error
  
imports: import numpy
  from scipy.stats import gmean
  from sklearn.metrics import mean_absolute_error
  from sklearn.metrics import mean_squared_error
  from sklearn.metrics import median_absolute_error
  from sklearn.metrics._regression import _check_reg_targets
  from sklearn.utils.stats import _weighted_percentile
  from sklearn.utils.validation import check_consistent_length
  from sktime.utils.stats import _weighted_geometric_mean
label_desc: Use image node_id 26 for calling a global function with example usage: _percentage_error(y_true, y_pred, symmetric) and returns: percentage_error