class_docstr: Dynamic Ensemble Selection (DES) is an established combination
  framework for classification tasks. The technique was based on
  Dynamic Classifier Selection (DCS) proposed by Ho et al. in
  1994 :cite:`ho1994decision`. The motivation behind this approach is that
  base classifiers often make distinctive errors and over a degree of
  complementarity. Consequently, selectively combining base classifier can
  result in a performance improvement over generic ensembles which use the
  majority vote of all base classifiers.
  
  Compared with DCS, DES uses a group of best classifiers to conduct a
  second phase combination, other than only the best classifier. The
  implemented version in this class is DES_LA which uses local accuracy
  as the metric for evaluating base classifier performance. `predict`
  uses (weighted) majority vote and `predict_proba` uses (weighted) average.
  
  See :cite:`ko2008dynamic` for details.
  
  Parameters
  ----------
  base_estimators: list or numpy array (n_estimators,)
      A list of base classifiers.
  
  local_region_size : int, optional (default=30)
      Number of training points to consider in each iteration of the local
      region generation process (30 by default).
  
  n_selected_clfs : int, optional (default=None)
      Number of selected base classifiers in the second phase combination.
      If None, set it to 1/2 * n_base_estimators
  
  use_weights : bool, optional (default=False)
      If True, use the classifiers' performance on the local region as
      their weight.
  
  threshold : float in (0, 1), optional (default=None)
      Cut-off value to convert scores into binary labels.
  
  pre_fitted : bool, optional (default=False)
      Whether the base classifiers are trained. If True, `fit`
      process may be skipped.
docstr: Return probability estimates for the test data X.
  
  Parameters
  ----------
  X : numpy array of shape (n_samples, n_features)
      The input samples.
  
  Returns
  -------
  p : numpy array of shape (n_samples,)
      The class probabilities of the input samples.
      Classes are ordered by lexicographic order.
docstr_tok: ["Return","probability","estimates","for","the","test","data","X.","Parameters","--","--","--","--","--","X",":","numpy","array","of","shape","(","n_samples",",","n_features",")","The","input","samples",".","Returns","--","--","--","-","p",":","numpy","array","of","shape","(","n_samples",",",")","The","class","probabilities","of","the","input","samples",".","Classes","are","ordered","by","lexicographic","order","."]
code: def predict_proba(self, X):
      """Return probability estimates for the test data X.
  
      Parameters
      ----------
      X : numpy array of shape (n_samples, n_features)
          The input samples.
  
      Returns
      -------
      p : numpy array of shape (n_samples,)
          The class probabilities of the input samples.
          Classes are ordered by lexicographic order.
      """
      return self._predict_internal(X, predict_proba=True)
  
imports: import warnings
  import numpy
  from sklearn.neighbors import KDTree
  from sklearn.metrics import accuracy_score
  from sklearn.utils import check_array
  from sklearn.utils import check_X_y
  from sklearn.utils.validation import check_is_fitted
  from sklearn.utils.multiclass import check_classification_targets
  from pyod.utils.utility import check_parameter
  from pyod.utils.utility import argmaxn
  from .base import BaseAggregator
  from ..utils.utility import score_to_proba
  from .classifier_comb import average
  from .classifier_comb import majority_vote
label_desc: Use image node_id 4 for calling the DES_LA obj's underlying member method code with example usage: obj.predict_proba(X) and returns: self