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 _validate_parameters(self):
      super(BaseDES, self)._validate_parameters()
  
      if not isinstance(self.mode, str):
          raise TypeError(
              'Parameter "mode" should be a string.'
              ' Currently "mode" = {}'.format(type(self.mode))
          )
  
      if self.mode not in ["selection", "hybrid", "weighting"]:
          raise ValueError(
              'Invalid value for parameter "mode".'
              ' "mode" should be one of these options '
              "{selection, hybrid, weighting}"
          )
  
      if self.voting not in ["soft", "hard"]:
          raise ValueError(
              'Invalid value for parameter "voting".'
              ' "voting" should be one of these options '
              "{selection, hybrid, weighting}"
          )
      if self.voting == "soft":
          self._check_predict_proba()
  
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 8 for calling the BaseDES obj's underlying member method code with example usage: obj._validate_parameters() without return types