code: def get_additional_metrics(self):
      if self._additional_metrics is None:
          logger.debug("Get additional metrics for Ensemble")
          # 'target' - the target after processing used for model training
          # 'prediction' - out of folds predictions of the model
          oof_predictions = self.get_out_of_folds()
          prediction_cols = [
              c for c in oof_predictions.columns if "prediction" in c
          ]
          target_cols = [
              c for c in oof_predictions.columns if "target" in c
          ]
  
          oof_preds = oof_predictions[prediction_cols]
          if self._ml_task == MULTICLASS_CLASSIFICATION:
              cols = oof_preds.columns.tolist()
              # prediction_
              labels = {i: v[11:] for i, v in enumerate(cols)}
  
              oof_preds["label"] = np.argmax(
                  np.array(oof_preds[prediction_cols]), axis=1
              )
              oof_preds["label"] = oof_preds["label"].map(labels)
  
          sample_weight = None
          if "sample_weight" in oof_predictions.columns:
              sample_weight = oof_predictions["sample_weight"]
  
          self._additional_metrics = AdditionalMetrics.compute(
              oof_predictions[target_cols],
              oof_preds,
              sample_weight,
              self._ml_task,
              self.sensitive_features,
              self._fairness_metric
              if self._ml_task != REGRESSION
              else f"{self._fairness_metric}@{self.get_metric_name()}",
              self._fairness_threshold,
              self._privileged_groups,
              self._underprivileged_groups,
          )
          if self._ml_task == BINARY_CLASSIFICATION:
              self._threshold = float(
                  self._additional_metrics["threshold"]
              )
  
      return self._additional_metrics
  
imports: import copy
  import json
  import logging
  import operator
  import os
  import time
  import uuid
  import numpy
  import pandas
  from supervised.algorithms.algorithm import BaseAlgorithm
  from supervised.algorithms.registry import BINARY_CLASSIFICATION, MULTICLASS_CLASSIFICATION, REGRESSION
  from supervised.exceptions import NotTrainedException
  from supervised.model_framework import ModelFramework
  from supervised.utils.additional_metrics import AdditionalMetrics
  from supervised.utils.config import LOG_LEVEL
  from supervised.utils.metric import Metric
  from supervised.utils.jsonencoder import MLJSONEncoder
  import matplotlib.pyplot
  from tabulate import tabulate
  from supervised.utils.learning_curves import LearningCurves
label_desc: Use image node_id 14 for calling the Ensemble obj's underlying member method code with example usage: obj.get_additional_metrics() and returns: self