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 a hybrid dynamic selection + weighting. 
docstr_tok: ["Combine","models","using","a","hybrid","dynamic","selection","+","weighting","."]
code: def _hybrid(self, competences, predictions, probabilities):
      """Combine models using a hybrid dynamic selection + weighting."""
      selected_classifiers = self.select(competences)
      if self.voting == "hard":
          votes = np.ma.MaskedArray(predictions, ~selected_classifiers)
          w_votes, _ = get_weighted_votes(
              votes, competences, np.arange(self.n_classes_)
          )
          predicted_proba = w_votes / w_votes.sum(axis=1)[:, None]
      else:
          masked_proba = self._mask_proba(
              probabilities, selected_classifiers
          )
          predicted_proba = aggregate_proba_ensemble_weighted(
              masked_proba, 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 6 for calling the BaseDES obj's underlying member method code with example usage: obj._hybrid(competences, predictions, probabilities) and returns: predicted_proba