class_docstr: Undersample based on the AllKNN method.
  
  This method will apply :class:`EditedNearestNeighbours` several times varying the
  number of nearest neighbours at each round. It begins by examining 1 closest
  neighbour, and it incrases the neighbourhood by 1 at each round.
  
  The algorithm stops when the maximum number of neighbours are examined or
  when the majority class becomes the minority class, whichever comes first.
  
  Read more in the :ref:`User Guide <edited_nearest_neighbors>`.
  
  Parameters
  ----------
  {sampling_strategy}
  
  n_neighbors : int or estimator object, default=3
      If ``int``, size of the maximum neighbourhood to examine for the undersampling.
      If `n_neighbors=3`, in the first iteration the algorithm will examine 1 closest
      neigbhour, in the second round 2, and in the final round 3. If object, an
      estimator that inherits from :class:`~sklearn.neighbors.base.KNeighborsMixin`
      that will be used to find the nearest-neighbors. Note that if you want to
      examine the 3 closest neighbours of a sample, you need to pass a 4-KNN.
  
  kind_sel : {{'all', 'mode'}}, default='all'
      Strategy to use to exclude samples.
  
      - If ``'all'``, all neighbours should be of the same class of the examined
        sample for it not be excluded.
      - If ``'mode'``, most neighbours should be of the same class of the examined
        sample for it not be excluded.
  
      The strategy `"all"` will be less conservative than `'mode'`. Thus,
      more samples will be removed when `kind_sel="all"`, generally.
  
  allow_minority : bool, default=False
      If ``True``, it allows the majority classes to become the minority
      class without early stopping.
  
      .. versionadded:: 0.3
  
  {n_jobs}
  
  Attributes
  ----------
  sampling_strategy_ : dict
      Dictionary containing the information to sample the dataset. The keys
      correspond to the class labels from which to sample and the values
      are the number of samples to sample.
  
  nn_ : estimator object
      Validated K-nearest Neighbours estimator linked to the parameter `n_neighbors`.
  
  enn_ : sampler object
      The validated :class:`~imblearn.under_sampling.EditedNearestNeighbours`
      instance.
  
  sample_indices_ : ndarray of shape (n_new_samples,)
      Indices of the samples selected.
  
      .. versionadded:: 0.4
  
  n_features_in_ : int
      Number of features in the input dataset.
  
      .. versionadded:: 0.9
  
  feature_names_in_ : ndarray of shape (`n_features_in_`,)
      Names of features seen during `fit`. Defined only when `X` has feature
      names that are all strings.
  
      .. versionadded:: 0.10
  
  See Also
  --------
  CondensedNearestNeighbour: Under-sampling by condensing samples.
  
  EditedNearestNeighbours: Under-sampling by editing samples.
  
  RepeatedEditedNearestNeighbours: Under-sampling by repeating ENN.
  
  Notes
  -----
  The method is based on [1]_.
  
  Supports multi-class resampling. A one-vs.-rest scheme is used when
  sampling a class as proposed in [1]_.
  
  References
  ----------
  .. [1] I. Tomek, "An Experiment with the Edited Nearest-Neighbor
     Rule," IEEE Transactions on Systems, Man, and Cybernetics, vol. 6(6),
     pp. 448-452, June 1976.
  
  Examples
  --------
  >>> from collections import Counter
  >>> from sklearn.datasets import make_classification
  >>> from imblearn.under_sampling import AllKNN
  >>> X, y = make_classification(n_classes=2, class_sep=2,
  ... weights=[0.1, 0.9], n_informative=3, n_redundant=1, flip_y=0,
  ... n_features=20, n_clusters_per_class=1, n_samples=1000, random_state=10)
  >>> print('Original dataset shape %s' % Counter(y))
  Original dataset shape Counter({{1: 900, 0: 100}})
  >>> allknn = AllKNN()
  >>> X_res, y_res = allknn.fit_resample(X, y)
  >>> print('Resampled dataset shape %s' % Counter(y_res))
  Resampled dataset shape Counter({{1: 887, 0: 100}})
class_docstr_tok: ["Undersample","based","on","the","AllKNN","method",".","This","method","will","apply",":","class",":","`","EditedNearestNeighbours","`","several","times","varying","the","number","of","nearest","neighbours","at","each","round",".","It","begins","by","examining","1","closest","neighbour",",","and","it","incrases","the","neighbourhood","by","1","at","each","round",".","The","algorithm","stops","when","the","maximum","number","of","neighbours","are","examined","or","when","the","majority","class","becomes","the","minority","class",",","whichever","comes","first",".","Read","more","in","the",":","ref",":","`","User","Guide","<","edited_nearest_neighbors",">","`",".","Parameters","--","--","--","--","--","{","sampling_strategy","}","n_neighbors",":","int","or","estimator","object",",","default=3","If","``","int","``",",","size","of","the","maximum","neighbourhood","to","examine","for","the","undersampling",".","If","`","n_neighbors=3","`",",","in","the","first","iteration","the","algorithm","will","examine","1","closest","neigbhour",",","in","the","second","round","2",",","and","in","the","final","round","3",".","If","object",",","an","estimator","that","inherits","from",":","class",":","`","~sklearn.neighbors.base.KNeighborsMixin","`","that","will","be","used","to","find","the","nearest-neighbors",".","Note","that","if","you","want","to","examine","the","3","closest","neighbours","of","a","sample",",","you","need","to","pass","a","4-KNN",".","kind_sel",":","{","{","'all","'",",","'mode","'","}","}",",","default='all'","Strategy","to","use","to","exclude","samples",".","-","If","``","'all","'","``",",","all","neighbours","should","be","of","the","same","class","of","the","examined","sample","for","it","not","be","excluded",".","-","If","``","'mode","'","``",",","most","neighbours","should","be","of","the","same","class","of","the","examined","sample","for","it","not","be","excluded",".","The","strategy","`","``","all","''","`","will","be","less","conservative","than","`","'mode","'","`",".","Thus",",","more","samples","will","be","removed","when","`","kind_sel=","''","all","''","`",",","generally",".","allow_minority",":","bool",",","default=False","If","``","True","``",",","it","allows","the","majority","classes","to","become","the","minority","class","without","early","stopping",".","..","versionadded",":",":","0.3","{","n_jobs","}","Attributes","--","--","--","--","--","sampling_strategy_",":","dict","Dictionary","containing","the","information","to","sample","the","dataset",".","The","keys","correspond","to","the","class","labels","from","which","to","sample","and","the","values","are","the","number","of","samples","to","sample",".","nn_",":","estimator","object","Validated","K-nearest","Neighbours","estimator","linked","to","the","parameter","`","n_neighbors","`",".","enn_",":","sampler","object","The","validated",":","class",":","`","~imblearn.under_sampling.EditedNearestNeighbours","`","instance",".","sample_indices_",":","ndarray","of","shape","(","n_new_samples",",",")","Indices","of","the","samples","selected",".","..","versionadded",":",":","0.4","n_features_in_",":","int","Number","of","features","in","the","input","dataset",".","..","versionadded",":",":","0.9","feature_names_in_",":","ndarray","of","shape","(","`","n_features_in_","`",",",")","Names","of","features","seen","during","`","fit","`",".","Defined","only","when","`","X","`","has","feature","names","that","are","all","strings",".","..","versionadded",":",":","0.10","See","Also","--","--","--","--","CondensedNearestNeighbour",":","Under-sampling","by","condensing","samples",".","EditedNearestNeighbours",":","Under-sampling","by","editing","samples",".","RepeatedEditedNearestNeighbours",":","Under-sampling","by","repeating","ENN",".","Notes","--","--","-","The","method","is","based","on","[","1","]","_",".","Supports","multi-class","resampling",".","A","one-vs.-rest","scheme","is","used","when","sampling","a","class","as","proposed","in","[","1","]","_.","References","--","--","--","--","--","..","[","1","]","I.","Tomek",",","``","An","Experiment","with","the","Edited","Nearest-Neighbor","Rule",",","''","IEEE","Transactions","on","Systems",",","Man",",","and","Cybernetics",",","vol",".","6","(","6",")",",","pp",".","448-452",",","June","1976",".","Examples","--","--","--","--",">",">",">","from","collections","import","Counter",">",">",">","from","sklearn.datasets","import","make_classification",">",">",">","from","imblearn.under_sampling","import","AllKNN",">",">",">","X",",","y","=","make_classification","(","n_classes=2",",","class_sep=2",",","...","weights=","[","0.1",",","0.9","]",",","n_informative=3",",","n_redundant=1",",","flip_y=0",",","...","n_features=20",",","n_clusters_per_class=1",",","n_samples=1000",",","random_state=10",")",">",">",">","print","(","'Original","dataset","shape","%","s","'","%","Counter","(","y",")",")","Original","dataset","shape","Counter","(","{","{","1",":","900",",","0",":","100","}","}",")",">",">",">","allknn","=","AllKNN","(",")",">",">",">","X_res",",","y_res","=","allknn.fit_resample","(","X",",","y",")",">",">",">","print","(","'Resampled","dataset","shape","%","s","'","%","Counter","(","y_res",")",")","Resampled","dataset","shape","Counter","(","{","{","1",":","887",",","0",":","100","}","}",")"]
code: def __init__(
      self,
      *,
      sampling_strategy="auto",
      n_neighbors=3,
      kind_sel="all",
      allow_minority=False,
      n_jobs=None,
  ):
      super().__init__(sampling_strategy=sampling_strategy)
      self.n_neighbors = n_neighbors
      self.kind_sel = kind_sel
      self.allow_minority = allow_minority
      self.n_jobs = n_jobs
  
imports: import numbers
  from collections import Counter
  import numpy
  from sklearn.utils import _safe_indexing
  from ...utils import Substitution, check_neighbors_object
  from ...utils._docstring import _n_jobs_docstring
  from ...utils._param_validation import HasMethods, Interval, StrOptions
  from ...utils.fixes import _mode
  from ..base import BaseCleaningSampler
label_desc: Use image node_id 1 to create a new AllKNN object from inherited base classes: BaseCleaningSampler with example: obj = AllKNN()