code: def clean_probas(self, probas):
      print(
          "Warning: We have found some values in the predicted probabilities that fall outside the range {0, 1}"
      )
      print(
          "This is likely the result of a model being trained on too little data, or with a bad set of hyperparameters. If you get this warning while doing a hyperparameter search, for instance, you can probably safely ignore it"
      )
      print(
          "We will cap those values at 0 or 1 for the purposes of scoring, but you should be careful to have similar safeguards in place in prod if you use this model"
      )
      if not isinstance(probas[0], list):
          probas = [
              val if str(val) not in bad_vals_as_strings else 0
              for val in probas
          ]
          probas = [min(max(pred, 0), 1) for pred in probas]
          return probas
      else:
          cleaned_probas = []
          for proba_tuple in probas:
              cleaned_tuple = []
              for item in proba_tuple:
                  if str(item) in bad_vals_as_strings:
                      item = 0
                  cleaned_tuple.append(max(min(item, 1), 0))
              cleaned_probas.append(cleaned_tuple)
          return cleaned_probas
  
imports: from collections import OrderedDict
  import math
  from auto_ml import utils
  import pandas
  from sklearn.ensemble import GradientBoostingRegressor, GradientBoostingClassifier
  from sklearn.metrics import mean_squared_error, make_scorer, brier_score_loss, accuracy_score, explained_variance_score, mean_absolute_error, median_absolute_error, r2_score, log_loss, roc_auc_score
  import numpy
  from tabulate import tabulate
label_desc: Use image node_id 3 for calling the ClassificationScorer obj's underlying member method code with example usage: obj.clean_probas(probas) and returns: probas, cleaned_probas