docstr: Create a cross-validated model by training a model for each fold with the same model parameters
code: def _fit_and_score_ensemble(self, X, y, cv, **fit_params):
      """Create a cross-validated model by training a model for each fold with the same model parameters"""
      fit_params_steps = self._split_fit_params(fit_params)
  
      folds = list(cv.split(X, y))
  
      # Take care of custom kernel functions
      base_estimators, kernel_cache = self._get_base_estimators(X)
  
      out = Parallel(n_jobs=self.n_jobs, verbose=self.verbose)(
          delayed(_fit_and_score_fold)(
              clone(estimator),
              X if i not in kernel_cache else kernel_cache[i],
              y,
              self.scorer,
              train_index,
              test_index,
              fit_params_steps[name],
              i,
              fold,
          )
          for i, (name, estimator) in enumerate(base_estimators)
          for fold, (train_index, test_index) in enumerate(folds)
      )
  
      if len(kernel_cache) > 0:
          out = self._restore_base_estimators(
              kernel_cache, out, X, folds
          )
  
      return self._create_base_ensemble(
          out, len(base_estimators), len(folds)
      )
  
imports: import numbers
  from joblib import Parallel, delayed
  import numpy
  from scipy.stats import kendalltau, rankdata, spearmanr
  from sklearn.base import BaseEstimator, clone
  from sklearn.model_selection import check_cv
  from sklearn.utils._param_validation import Interval, StrOptions
  from .base import _fit_and_score
  from .stacking import Stacking
label_desc: Use image node_id 8 for calling the BaseEnsembleSelection obj's underlying member method code with example usage: obj._fit_and_score_ensemble(X, y, cv) and returns: self