class_docstr: Base class for a Dynamic Ensemble Selection (DES).
  
  All dynamic ensemble selection techniques should inherit from this class.
  
  Warning: This class should not be instantiated directly, use
  derived classes instead.
code: def __init__(
      self,
      pool_classifiers=None,
      k=7,
      DFP=False,
      with_IH=False,
      safe_k=None,
      IH_rate=0.30,
      mode="selection",
      voting="hard",
      needs_proba=False,
      random_state=None,
      knn_classifier="knn",
      knn_metric="minkowski",
      knne=False,
      DSEL_perc=0.5,
      n_jobs=-1,
  ):
      super(BaseDES, self).__init__(
          pool_classifiers=pool_classifiers,
          k=k,
          DFP=DFP,
          with_IH=with_IH,
          safe_k=safe_k,
          IH_rate=IH_rate,
          needs_proba=needs_proba,
          random_state=random_state,
          knn_classifier=knn_classifier,
          knn_metric=knn_metric,
          knne=knne,
          DSEL_perc=DSEL_perc,
          n_jobs=n_jobs,
      )
      self.mode = mode
      self.voting = voting
  
file_path: DESlib/deslib/des/base.py
imports: from abc import ABCMeta
  import numpy
  from deslib.base import BaseDS
  from deslib.util.aggregation import aggregate_proba_ensemble_weighted, sum_votes_per_class, get_weighted_votes
label_desc: Use image node_id 1 to create a new BaseDES object from inherited base classes: BaseDS with example: obj = BaseDES(pool_classifiers, k, DFP, with_IH, safe_k, IH_rate, mode, voting, needs_proba, random_state, knn_classifier, knn_metric, knne, DSEL_perc, n_jobs)