class_docstr: An example classifier which implements a 1-NN algorithm.
  
  For more information regarding how to build your own classifier, read more
  in the :ref:`User Guide <user_guide>`.
  
  Parameters
  ----------
  demo_param : str, default='demo'
      A parameter used for demonstation of how to pass and store paramters.
  
  Attributes
  ----------
  X_ : ndarray, shape (n_samples, n_features)
      The input passed during :meth:`fit`.
  y_ : ndarray, shape (n_samples,)
      The labels passed during :meth:`fit`.
  classes_ : ndarray, shape (n_classes,)
      The classes seen at :meth:`fit`.
docstr: Classify input data.
  
  Parameters
  ----------
  X : array-like, shape (n_samples, n_features)
      The input samples.
  
  Returns
  -------
  y : ndarray, shape (n_samples,)
      The label for each sample is the label of the closest sample
      seen during fit.
docstr_tok: ["Classify","input","data",".","Parameters","--","--","--","--","--","X",":","array-like",",","shape","(","n_samples",",","n_features",")","The","input","samples",".","Returns","--","--","--","-","y",":","ndarray",",","shape","(","n_samples",",",")","The","label","for","each","sample","is","the","label","of","the","closest","sample","seen","during","fit","."]
code: def predict(self, X):
      """Classify input data.
  
      Parameters
      ----------
      X : array-like, shape (n_samples, n_features)
          The input samples.
  
      Returns
      -------
      y : ndarray, shape (n_samples,)
          The label for each sample is the label of the closest sample
          seen during fit.
      """
      # Check is fit had been called
      check_is_fitted(self, ["X_", "y_"])
  
      # Input validation
      X = check_array(X)
  
      closest = gs.argmin(euclidean_distances(X, self.X_), axis=1)
      return self.y_[closest]
  
imports: from sklearn.base import BaseEstimator, ClassifierMixin, TransformerMixin
  from sklearn.metrics import euclidean_distances
  from sklearn.utils.multiclass import unique_labels
  from sklearn.utils.validation import check_array, check_is_fitted, check_X_y
  import geomstats.backend
label_desc: Use image node_id 3 for calling the TemplateClassifier obj's underlying member method code with example usage: obj.predict(X) and returns: self