code: def _multi_logloss(
      self, y_true: np.ndarray, y_pred: np.ndarray, eps: float = 1e-15
  ):
      # ('evaluate model effects' not  use this function)
      y_pred = np.clip(y_pred, eps, 1 - eps)
      score = np.mean(
          [
              -math.log(y_pred[i][self.map[y]])
              for i, y in enumerate(y_true)
          ]
      )
  
      return score
  
imports: import time
  import math
  import torch
  import numpy
  import pandas
  import optuna
  from typing import Dict, Union, Optional
  from optuna import trial
  from sklearn import clone
  from sklearn.metrics import mean_squared_error
  from sklearn.model_selection import check_cv, cross_val_predict
  from sklearn.ensemble import RandomForestRegressor, RandomForestClassifier
  from type_infer.dtype import dtype
  from lightwood.helpers.log import log
  from lightwood.encoder.base import BaseEncoder
  from lightwood.data.encoded_ds import EncodedDs, ConcatedEncodedDs
  from lightwood.mixer.base import BaseMixer
  from lightwood.api.types import PredictionArguments
label_desc: Use image node_id 2 for calling the RandomForest obj's underlying member method code with example usage: obj._multi_logloss(y_true, y_pred, eps) and returns: score