class_docstr: Base class for a dynamic classifier selection (dcs) and
     dynamic ensemble selection (des) methods.
  
  All DCS and DES techniques should inherit from this class.
  
  Warning: This class should not be used directly.
  Use derived classes instead.
code: def _fit_pool_classifiers(self, X, y):
      if len(X) < 2:
          raise ValueError(
              "More than one sample is needed "
              "if the pool of classifiers is not informed."
          )
      # Split the dataset into training (for the base classifier) and
      # DSEL (for DS)
      X_train, X_dsel, y_train, y_dsel = train_test_split(
          X,
          y,
          test_size=self.DSEL_perc,
          random_state=self.random_state_,
      )
      self.pool_classifiers_ = BaggingClassifier(
          random_state=self.random_state_, n_jobs=self.n_jobs
      )
      self.pool_classifiers_.fit(X_train, y_train)
      return X_dsel, y_dsel
  
imports: import functools
  import math
  import warnings
  from abc import abstractmethod, ABCMeta
  import numpy
  from scipy.stats import mode
  from sklearn.base import BaseEstimator, ClassifierMixin
  from sklearn.ensemble import BaseEnsemble, BaggingClassifier
  from sklearn.model_selection import train_test_split
  from sklearn.neighbors import KNeighborsClassifier
  from sklearn.preprocessing import LabelEncoder, normalize
  from sklearn.utils.validation import check_X_y, check_is_fitted, check_array, check_random_state
  from deslib.util import KNNE
  from deslib.util import faiss_knn_wrapper
  from deslib.util.dfp import frienemy_pruning_preprocessed
  from deslib.util.instance_hardness import hardness_region_competence
label_desc: Use image node_id 18 for calling the BaseDS obj's underlying member method code with example usage: obj._fit_pool_classifiers(X, y) and returns: X_dsel,  y_dsel