code: def customized_log_loss(y_true, y_pred, eps=1e-15):
      """
  
      Parameters
      ----------
      y_true : array-like or label indicator matrix
          Ground truth (correct) labels for n_samples samples.
  
      y_pred : array-like of float
          The predictions. shape = (n_samples, n_classes) or (n_samples,)
  
      eps : float
          The epsilon
  
      Returns
      -------
      loss
          The negative log-likelihood
      """
      assert y_true.ndim == 1
      if y_pred.ndim == 1:
          # First clip the y_pred which is also used in sklearn
          # Convert to float64 to avoid rounding error on the clip operation with epsilon
          y_pred = np.clip(y_pred.astype(float), eps, 1 - eps)
          return -(
              y_true * np.log(y_pred)
              + (1 - y_true) * np.log(1 - y_pred)
          ).mean()
      else:
          assert y_pred.ndim == 2, "Only ndim=2 is supported"
          labels = np.arange(y_pred.shape[1], dtype=np.int32)
          return sklearn.metrics.log_loss(
              y_true.astype(np.int32), y_pred, labels=labels
          )
  
imports: import json
  from abc import ABCMeta, abstractmethod
  from functools import partial
  import numpy
  import scipy
  import scipy.stats
  import sklearn.metrics
  from ..constants import BINARY, MULTICLASS, QUANTILE, REGRESSION, SOFTCLASS
  from .None import classification_metrics, quantile_metrics
  from .classification_metrics import confusion_matrix
label_desc: Use image node_id 7 for calling a global function with example usage: customized_log_loss(y_true, y_pred, eps) and returns: unknown, sklearn