class_docstr: Base class for hyper parameter search with cross-validation.
code: def __init__(
      self,
      algo_class,
      measures=["rmse", "mae"],
      cv=None,
      refit=False,
      return_train_measures=False,
      n_jobs=1,
      pre_dispatch="2*n_jobs",
      joblib_verbose=0,
  ):
      self.algo_class = algo_class
      self.measures = [measure.lower() for measure in measures]
      self.cv = cv
  
      if isinstance(refit, str):
          if refit.lower() not in self.measures:
              raise ValueError(
                  "It looks like the measure you want to use "
                  "with refit ({}) is not in the measures "
                  "parameter"
              )
  
          self.refit = refit.lower()
  
      elif refit is True:
          self.refit = self.measures[0]
  
      else:
          self.refit = False
  
      self.return_train_measures = return_train_measures
      self.n_jobs = n_jobs
      self.pre_dispatch = pre_dispatch
      self.joblib_verbose = joblib_verbose
  
imports: from abc import ABC, abstractmethod
  from itertools import product
  import numpy
  from joblib import delayed, Parallel
  from ..dataset import DatasetUserFolds
  from ..utils import get_rng
  from .split import get_cv
  from .validation import fit_and_score
label_desc: Use image node_id 1 to create a new BaseSearchCV object from inherited base classes: ABC with example: obj = BaseSearchCV(algo_class, measures, cv, refit, return_train_measures, n_jobs, pre_dispatch, joblib_verbose)