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.
docstr: Combine models using dynamic weighting. 
docstr_tok: ["Combine","models","using","dynamic","weighting","."]
code: def _dynamic_weighting(self, competences, predictions, probabilities):
      """Combine models using dynamic weighting."""
      if self.voting == "hard":
          w_votes, _ = get_weighted_votes(
              predictions, competences, np.arange(self.n_classes_)
          )
          predicted_proba = w_votes / w_votes.sum(axis=1)[:, None]
      else:
          predicted_proba = aggregate_proba_ensemble_weighted(
              probabilities, competences
          )
      return predicted_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 5 for calling the BaseDES obj's underlying member method code with example usage: obj._dynamic_weighting(competences, predictions, probabilities) and returns: predicted_proba