Python make_scorer giving incorrect outputs for Root Mean Square Logarithmic Error I want to generate a grid search for which I need the scoring parameter based on which the search will take place. I have defined the following function to provide me a Root Mean Squared Logarithmic Error. But I feel that the scorer is considering the greater value to be a better score, whereas it should consider the lower value as better score. Please let me know if I have defined a correct scorer.
Function for RMSLE
def score_func(y_true, y_pred, **kwargs):
  y_true = np.abs(y_true)
  y_pred = np.abs(y_pred)

  return np.sqrt(mean_squared_log_error(y_true, y_pred))

scorer = make_scorer(score_func)

I had to use np.abs in the above code, otherwise it was giving an error that RMSLE cannot be used when Target has negative values.
The make_scorer function takes a greater_is_better parameter (bool, default=True) which defines whether 'high is good' or 'low is good'. Changing its value to False might solve the issue you are having.