class_docstr: Base class for all metric-learners.
  
  Parameters
  ----------
  preprocessor : array-like, shape=(n_samples, n_features) or callable
    The preprocessor to call to get tuples from indices. If array-like,
    tuples will be gotten like this: X[indices].
class_docstr_tok: ["Base","class","for","all","metric-learners",".","Parameters","--","--","--","--","--","preprocessor",":","array-like",",","shape=","(","n_samples",",","n_features",")","or","callable","The","preprocessor","to","call","to","get","tuples","from","indices",".","If","array-like",",","tuples","will","be","gotten","like","this",":","X","[","indices","]","."]
docstr: Initializes the preprocessor
docstr_tok: ["Initializes","the","preprocessor"]
code: def _check_preprocessor(self):
      """Initializes the preprocessor"""
      if _is_arraylike(self.preprocessor):
          self.preprocessor_ = ArrayIndexer(self.preprocessor)
      elif callable(self.preprocessor) or self.preprocessor is None:
          self.preprocessor_ = self.preprocessor
      else:
          raise ValueError(
              "Invalid type for the preprocessor: {}. You should "
              "provide either None, an array-like object, "
              "or a callable.".format(type(self.preprocessor))
          )
  
imports: from sklearn.base import BaseEstimator, ClassifierMixin
  from sklearn.utils.extmath import stable_cumsum
  from sklearn.utils.validation import _is_arraylike, check_is_fitted
  from sklearn.metrics import roc_auc_score, roc_curve, precision_recall_curve
  import numpy
  from abc import ABCMeta, abstractmethod
  from ._util import ArrayIndexer, check_input, validate_vector
  import warnings
label_desc: Use image node_id 5 for calling the BaseMetricLearner obj's underlying member method code with example usage: obj._check_preprocessor() without return types