class_docstr: Gaussian process regressor.
  Attributes:
      alpha: A hyperparameter.
class_docstr_tok: ["Gaussian","process","regressor",".","Attributes",":","alpha",":","A","hyperparameter","."]
docstr: Fit the regressor for the first time. 
docstr_tok: ["Fit","the","regressor","for","the","first","time","."]
code: def first_fit(self, train_x, train_y):
      """Fit the regressor for the first time."""
      train_x, train_y = np.array(train_x), np.array(train_y)
  
      self._x = np.copy(train_x)
      self._y = np.copy(train_y)
  
      self._distance_matrix = edit_distance_matrix(self._x)
      k_matrix = bourgain_embedding_matrix(self._distance_matrix)
      k_matrix[np.diag_indices_from(k_matrix)] += self.alpha
  
      self._l_matrix = cholesky(k_matrix, lower=True)  # Line 2
  
      self._alpha_vector = cho_solve(
          (self._l_matrix, True), self._y
      )  # Line 3
  
      self._first_fitted = True
      return self
  
imports: import math
  import random
  from copy import deepcopy
  from functools import total_ordering
  from queue import PriorityQueue
  import numpy
  from scipy.linalg import LinAlgError, cho_solve, cholesky, solve_triangular
  from scipy.optimize import linear_sum_assignment
  from sklearn.metrics.pairwise import rbf_kernel
  from nni.utils import OptimizeMode
  from .graph_transformer import transform
  from .utils import Constant
  from .layers import is_layer
label_desc: Use image node_id 6 for calling the IncrementalGaussianProcess obj's underlying member method code with example usage: obj.first_fit(train_x, train_y) and returns: self