class_docstr: Feature selection using data-mined expert knowledge.
  Based on the MultiSURF algorithm as introduced in:
  Moore, Jason et al. Multiple Threshold Spatially Uniform ReliefF
  for the Genetic Analysis of Complex Human Diseases.
docstr: Runs nearest neighbor (NN) identification and feature scoring to yield MultiSURF* scores. 
docstr_tok: ["Runs","nearest","neighbor","(","NN",")","identification","and","feature","scoring","to","yield","MultiSURF","*","scores","."]
code: def _run_algorithm(self):
      """Runs nearest neighbor (NN) identification and feature scoring to yield MultiSURF* scores."""
      nan_entries = np.isnan(self._X)
  
      NNlist = [
          self._find_neighbors(datalen)
          for datalen in range(self._datalen)
      ]
      NN_near_list = [i[0] for i in NNlist]
      NN_far_list = [i[1] for i in NNlist]
  
      if (
          isinstance(self._weights, np.ndarray)
          and self.weight_final_scores
      ):
          scores = np.sum(
              Parallel(n_jobs=self.n_jobs)(
                  delayed(MultiSURFstar_compute_scores)(
                      instance_num,
                      self.attr,
                      nan_entries,
                      self._num_attributes,
                      self.mcmap,
                      NN_near,
                      NN_far,
                      self._headers,
                      self._class_type,
                      self._X,
                      self._y,
                      self._labels_std,
                      self.data_type,
                      self._weights,
                  )
                  for instance_num, NN_near, NN_far in zip(
                      range(self._datalen), NN_near_list, NN_far_list
                  )
              ),
              axis=0,
          )
      else:
          scores = np.sum(
              Parallel(n_jobs=self.n_jobs)(
                  delayed(MultiSURFstar_compute_scores)(
                      instance_num,
                      self.attr,
                      nan_entries,
                      self._num_attributes,
                      self.mcmap,
                      NN_near,
                      NN_far,
                      self._headers,
                      self._class_type,
                      self._X,
                      self._y,
                      self._labels_std,
                      self.data_type,
                  )
                  for instance_num, NN_near, NN_far in zip(
                      range(self._datalen), NN_near_list, NN_far_list
                  )
              ),
              axis=0,
          )
  
      return np.array(scores)
  
file_path: scikit-rebate/skrebate/multisurfstar.py
imports: from __future__ import print_function
  import numpy
  from .surfstar import SURFstar
  from .scoring_utils import MultiSURFstar_compute_scores
  from joblib import Parallel, delayed
label_desc: Use image node_id 2 for calling the MultiSURFstar obj's underlying member method code with example usage: obj._run_algorithm() and returns: np