code: def mean_squared_log_error(
      y_true,
      y_pred,
      *,
      sample_weight=None,
      multioutput="uniform_average",
      squared=True,
  ):
      """Mean squared logarithmic error regression loss.
  
      Read more in the :ref:`User Guide <mean_squared_log_error>`.
  
      Parameters
      ----------
      y_true : array-like of shape (n_samples,) or (n_samples, n_outputs)
          Ground truth (correct) target values.
  
      y_pred : array-like of shape (n_samples,) or (n_samples, n_outputs)
          Estimated target values.
  
      sample_weight : array-like of shape (n_samples,), default=None
          Sample weights.
  
      multioutput : {'raw_values', 'uniform_average'} or array-like of shape \
              (n_outputs,), default='uniform_average'
  
          Defines aggregating of multiple output values.
          Array-like value defines weights used to average errors.
  
          'raw_values' :
              Returns a full set of errors when the input is of multioutput
              format.
  
          'uniform_average' :
              Errors of all outputs are averaged with uniform weight.
      squared : bool, default=True
          If True returns MSLE (mean squared log error) value.
          If False returns RMSLE (root mean squared log error) value.
  
      Returns
      -------
      loss : float or ndarray of floats
          A non-negative floating point value (the best value is 0.0), or an
          array of floating point values, one for each individual target.
  
      Examples
      --------
      >>> from sklearn.metrics import mean_squared_log_error
      >>> y_true = [3, 5, 2.5, 7]
      >>> y_pred = [2.5, 5, 4, 8]
      >>> mean_squared_log_error(y_true, y_pred)
      0.039...
      >>> mean_squared_log_error(y_true, y_pred, squared=False)
      0.199...
      >>> y_true = [[0.5, 1], [1, 2], [7, 6]]
      >>> y_pred = [[0.5, 2], [1, 2.5], [8, 8]]
      >>> mean_squared_log_error(y_true, y_pred)
      0.044...
      >>> mean_squared_log_error(y_true, y_pred, multioutput='raw_values')
      array([0.00462428, 0.08377444])
      >>> mean_squared_log_error(y_true, y_pred, multioutput=[0.3, 0.7])
      0.060...
      """
      y_type, y_true, y_pred, multioutput = _check_reg_targets(
          y_true, y_pred, multioutput
      )
      check_consistent_length(y_true, y_pred, sample_weight)
  
      if (y_true < 0).any() or (y_pred < 0).any():
          raise ValueError(
              "Mean Squared Logarithmic Error cannot be used when "
              "targets contain negative values."
          )
  
      return mean_squared_error(
          np.log1p(y_true),
          np.log1p(y_pred),
          sample_weight=sample_weight,
          multioutput=multioutput,
          squared=squared,
      )
  
imports: import warnings
  from numbers import Real
  import numpy
  from scipy.special import xlogy
  from ..exceptions import UndefinedMetricWarning
  from ..utils._param_validation import Interval, StrOptions, validate_params
  from ..utils.stats import _weighted_percentile
  from ..utils.validation import _check_sample_weight, _num_samples, check_array, check_consistent_length, column_or_1d
label_desc: Use image node_id 6 for calling a global function with example usage: mean_squared_log_error(y_true, y_pred) and returns: mean_squared_error