code: def _parse_auto_method(self, method, n_samples, n_features):
      result_method = method
  
      if method in ["auto", "ball_tree"]:
          condition = (
              self.n_neighbors is not None
              and self.n_neighbors >= n_samples // 2
          )
          if (
              self.metric == "precomputed"
              or n_features > 15
              or condition
          ):
              result_method = "brute"
          else:
              if self.metric == "euclidean":
                  result_method = "kd_tree"
              else:
                  result_method = "brute"
  
      return result_method
  
imports: from abc import ABCMeta
  from numbers import Integral
  import numpy
  from daal4py import bf_knn_classification_prediction, bf_knn_classification_training, kdtree_knn_classification_prediction, kdtree_knn_classification_training
  from onedal import _backend
  from ..common._estimator_checks import _check_is_fitted, _is_classifier, _is_regressor
  from ..common._mixin import ClassifierMixin, RegressorMixin
  from ..common._policy import _get_policy
  from ..datatypes import _convert_to_supported, from_table, to_table
  from ..utils import _check_array, _check_classification_targets, _check_n_features, _check_X_y, _column_or_1d, _num_samples
label_desc: Use image node_id 2 for calling the NeighborsCommonBase obj's underlying member method code with example usage: obj._parse_auto_method(method, n_samples, n_features) and returns: result_method