class_docstr: Dynamic ensemble Selection KNN (DES-KNN).
  
  This method selects an ensemble of classifiers taking into account the
  accuracy and diversity of the base classifiers. The k-NN algorithm is used
  to define the region of competence. The N most accurate classifiers in the
  region of competence are first selected. Then, the J more diverse
  classifiers from the N most accurate classifiers are selected to compose
  the ensemble.
  
  Parameters
  ----------
   pool_classifiers : list of classifiers (Default = None)
      The generated_pool of classifiers trained for the corresponding
      classification problem. Each base classifiers should support the method
      "predict". If None, then the pool of classifiers is a bagging
      classifier.
  
  k : int (Default = 7)
      Number of neighbors used to estimate the competence of the base
      classifiers.
  
  DFP : Boolean (Default = False)
      Determines if the dynamic frienemy pruning is applied.
  
  with_IH : Boolean (Default = False)
      Whether the hardness level of the region of competence is used to
      decide between using the DS algorithm or the KNN for classification of
      a given query sample.
  
  safe_k : int (default = None)
      The size of the indecision region.
  
  IH_rate : float (default = 0.3)
      Hardness threshold. If the hardness level of the competence region is
      lower than the IH_rate the KNN classifier is used. Otherwise, the DS
      algorithm is used for classification.
  
  pct_accuracy : float (Default = 0.5)
                 Percentage of base classifiers selected based on accuracy
  
  pct_diversity : float (Default = 0.3)
                  Percentage of base classifiers selected based n diversity
  
  more_diverse : Boolean (Default = True)
      Whether we select the most or the least diverse classifiers to add
      to the pre-selected ensemble
  
  metric : String (Default = 'df')
      Metric used to estimate the diversity of the base classifiers. Can be
      either the double fault (df), Q-statistics (Q), or error correlation.
  
  random_state : int, RandomState instance or None, optional (default=None)
      If int, random_state is the seed used by the random number generator;
      If RandomState instance, random_state is the random number generator;
      If None, the random number generator is the RandomState instance used
      by `np.random`.
  
  knn_classifier : {'knn', 'faiss', None} (Default = 'knn')
       The algorithm used to estimate the region of competence:
  
       - 'knn' will use :class:`KNeighborsClassifier` from sklearn
        :class:`KNNE` available on `deslib.utils.knne`
  
       - 'faiss' will use Facebook's Faiss similarity search through the
         class :class:`FaissKNNClassifier`
  
       - None, will use sklearn :class:`KNeighborsClassifier`.
  
  knn_metric : {'minkowski', 'cosine', 'mahalanobis'} (Default = 'minkowski')
      The metric used by the k-NN classifier to estimate distances.
  
      - 'minkowski' will use minkowski distance.
  
      - 'cosine' will use the cosine distance.
  
      - 'mahalanobis' will use the mahalonibis distance.
  
  knne : bool (Default=False)
      Whether to use K-Nearest Neighbor Equality (KNNE) for the region
      of competence estimation.
  
  DSEL_perc : float (Default = 0.5)
      Percentage of the input data used to fit DSEL.
      Note: This parameter is only used if the pool of classifier is None or
      unfitted.
  
  voting : {'hard', 'soft'}, default='hard'
          If 'hard', uses predicted class labels for majority rule voting.
          Else if 'soft', predicts the class label based on the argmax of
          the sums of the predicted probabilities, which is recommended for
          an ensemble of well-calibrated classifiers.
  
  n_jobs : int, default=-1
      The number of parallel jobs to run. None means 1 unless in
      a joblib.parallel_backend context. -1 means using all processors.
      Doesn’t affect fit method.
  
  References
  ----------
  Soares, R. G., Santana, A., Canuto, A. M., & de Souto, M. C. P.
  "Using accuracy and more_diverse to select classifiers to build ensembles."
  International Joint Conference on Neural Networks (IJCNN)., 2006.
  
  Britto, Alceu S., Robert Sabourin, and Luiz ES Oliveira. "Dynamic selection
  of classifiers—a comprehensive review."
  Pattern Recognition 47.11 (2014): 3665-3680.
  
  R. M. O. Cruz, R. Sabourin, and G. D. Cavalcanti, “Dynamic classifier
  selection: Recent advances and perspectives,”
  Information Fusion, vol. 41, pp. 195 – 216, 2018.
class_docstr_tok: ["Dynamic","ensemble","Selection","KNN","(","DES-KNN",")",".","This","method","selects","an","ensemble","of","classifiers","taking","into","account","the","accuracy","and","diversity","of","the","base","classifiers",".","The","k-NN","algorithm","is","used","to","define","the","region","of","competence",".","The","N","most","accurate","classifiers","in","the","region","of","competence","are","first","selected",".","Then",",","the","J","more","diverse","classifiers","from","the","N","most","accurate","classifiers","are","selected","to","compose","the","ensemble",".","Parameters","--","--","--","--","--","pool_classifiers",":","list","of","classifiers","(","Default","=","None",")","The","generated_pool","of","classifiers","trained","for","the","corresponding","classification","problem",".","Each","base","classifiers","should","support","the","method","``","predict","''",".","If","None",",","then","the","pool","of","classifiers","is","a","bagging","classifier",".","k",":","int","(","Default","=","7",")","Number","of","neighbors","used","to","estimate","the","competence","of","the","base","classifiers",".","DFP",":","Boolean","(","Default","=","False",")","Determines","if","the","dynamic","frienemy","pruning","is","applied",".","with_IH",":","Boolean","(","Default","=","False",")","Whether","the","hardness","level","of","the","region","of","competence","is","used","to","decide","between","using","the","DS","algorithm","or","the","KNN","for","classification","of","a","given","query","sample",".","safe_k",":","int","(","default","=","None",")","The","size","of","the","indecision","region",".","IH_rate",":","float","(","default","=","0.3",")","Hardness","threshold",".","If","the","hardness","level","of","the","competence","region","is","lower","than","the","IH_rate","the","KNN","classifier","is","used",".","Otherwise",",","the","DS","algorithm","is","used","for","classification",".","pct_accuracy",":","float","(","Default","=","0.5",")","Percentage","of","base","classifiers","selected","based","on","accuracy","pct_diversity",":","float","(","Default","=","0.3",")","Percentage","of","base","classifiers","selected","based","n","diversity","more_diverse",":","Boolean","(","Default","=","True",")","Whether","we","select","the","most","or","the","least","diverse","classifiers","to","add","to","the","pre-selected","ensemble","metric",":","String","(","Default","=","'df","'",")","Metric","used","to","estimate","the","diversity","of","the","base","classifiers",".","Can","be","either","the","double","fault","(","df",")",",","Q-statistics","(","Q",")",",","or","error","correlation",".","random_state",":","int",",","RandomState","instance","or","None",",","optional","(","default=None",")","If","int",",","random_state","is","the","seed","used","by","the","random","number","generator",";","If","RandomState","instance",",","random_state","is","the","random","number","generator",";","If","None",",","the","random","number","generator","is","the","RandomState","instance","used","by","`","np.random","`",".","knn_classifier",":","{","'knn","'",",","'faiss","'",",","None","}","(","Default","=","'knn","'",")","The","algorithm","used","to","estimate","the","region","of","competence",":","-","'knn","'","will","use",":","class",":","`","KNeighborsClassifier","`","from","sklearn",":","class",":","`","KNNE","`","available","on","`","deslib.utils.knne","`","-","'faiss","'","will","use","Facebook","'s","Faiss","similarity","search","through","the","class",":","class",":","`","FaissKNNClassifier","`","-","None",",","will","use","sklearn",":","class",":","`","KNeighborsClassifier","`",".","knn_metric",":","{","'minkowski","'",",","'cosine","'",",","'mahalanobis","'","}","(","Default","=","'minkowski","'",")","The","metric","used","by","the","k-NN","classifier","to","estimate","distances",".","-","'minkowski","'","will","use","minkowski","distance",".","-","'cosine","'","will","use","the","cosine","distance",".","-","'mahalanobis","'","will","use","the","mahalonibis","distance",".","knne",":","bool","(","Default=False",")","Whether","to","use","K-Nearest","Neighbor","Equality","(","KNNE",")","for","the","region","of","competence","estimation",".","DSEL_perc",":","float","(","Default","=","0.5",")","Percentage","of","the","input","data","used","to","fit","DSEL",".","Note",":","This","parameter","is","only","used","if","the","pool","of","classifier","is","None","or","unfitted",".","voting",":","{","'hard","'",",","'soft","'","}",",","default='hard'","If","'hard","'",",","uses","predicted","class","labels","for","majority","rule","voting",".","Else","if","'soft","'",",","predicts","the","class","label","based","on","the","argmax","of","the","sums","of","the","predicted","probabilities",",","which","is","recommended","for","an","ensemble","of","well-calibrated","classifiers",".","n_jobs",":","int",",","default=-1","The","number","of","parallel","jobs","to","run",".","None","means","1","unless","in","a","joblib.parallel_backend","context",".","-1","means","using","all","processors",".","Doesn","\u2019","t","affect","fit","method",".","References","--","--","--","--","--","Soares",",","R.","G.",",","Santana",",","A.",",","Canuto",",","A.","M.",",","&","de","Souto",",","M.","C.","P.","''","Using","accuracy","and","more_diverse","to","select","classifiers","to","build","ensembles",".","''","International","Joint","Conference","on","Neural","Networks","(","IJCNN",")",".",",","2006",".","Britto",",","Alceu","S.",",","Robert","Sabourin",",","and","Luiz","ES","Oliveira",".","``","Dynamic","selection","of","classifiers\u2014a","comprehensive","review",".","''","Pattern","Recognition","47.11","(","2014",")",":","3665-3680",".","R.","M.","O.","Cruz",",","R.","Sabourin",",","and","G.","D.","Cavalcanti",",","\u201c","Dynamic","classifier","selection",":","Recent","advances","and","perspectives",",","\u201d","Information","Fusion",",","vol",".","41",",","pp",".","195","\u2013","216",",","2018","."]
docstr: Prepare the DS model by setting the KNN algorithm and
  pre-processing the information required to apply the DS
  method.
  
  Parameters
  ----------
  X : array of shape (n_samples, n_features)
      Data used to fit the model.
  
  y : array of shape (n_samples)
      class labels of each example in X.
  
  Returns
  -------
  self
docstr_tok: ["Prepare","the","DS","model","by","setting","the","KNN","algorithm","and","pre-processing","the","information","required","to","apply","the","DS","method",".","Parameters","--","--","--","--","--","X",":","array","of","shape","(","n_samples",",","n_features",")","Data","used","to","fit","the","model",".","y",":","array","of","shape","(","n_samples",")","class","labels","of","each","example","in","X",".","Returns","--","--","--","-","self"]
code: def fit(self, X, y):
      """Prepare the DS model by setting the KNN algorithm and
      pre-processing the information required to apply the DS
      method.
  
      Parameters
      ----------
      X : array of shape (n_samples, n_features)
          Data used to fit the model.
  
      y : array of shape (n_samples)
          class labels of each example in X.
  
      Returns
      -------
      self
      """
      super(DESKNN, self).fit(X, y)
      self.N_ = int(self.n_classifiers_ * self.pct_accuracy)
      self.J_ = int(np.ceil(self.n_classifiers_ * self.pct_diversity))
      self._check_parameters()
      self._set_diversity_func()
      return self
  
file_path: DESlib/deslib/des/des_knn.py
imports: import numpy
  from deslib.base import BaseDS
  from deslib.util.aggregation import sum_votes_per_class
  from deslib.util.diversity import negative_double_fault, Q_statistic, ratio_errors, compute_pairwise_diversity
label_desc: Use image node_id 2 for calling the DESKNN obj's underlying member method code with example usage: obj.fit(X, y) and returns: self