class_docstr: Implementation of Gaussian process model. The Gaussian process hyperparameters are obtained by optimizing
  the marginal log likelihood.
  
  This code is based on the implementation of RoBO:
  Klein, A. and Falkner, S. and Mansur, N. and Hutter, F.
  RoBO: A Flexible and Robust Bayesian Optimization Framework in Python
  In: NIPS 2017 Bayesian Optimization Workshop
  
  Parameters
  ----------
  configspace : ConfigurationSpace
  kernel : Kernel
      Kernel which is used for the Gaussian process.
  n_restarts : int, defaults to 10
      Number of restarts for the Gaussian process hyperparameter optimization.
  normalize_y : bool, defaults to True
      Zero mean unit variance normalization of the output values.
  instance_features : dict[str, list[int | float]] | None, defaults to None
      Features (list of int or floats) of the instances (str). The features are incorporated into the X data,
      on which the model is trained on.
  pca_components : float, defaults to 7
      Number of components to keep when using PCA to reduce dimensionality of instance features.
  seed : int
class_docstr_tok: ["Implementation","of","Gaussian","process","model",".","The","Gaussian","process","hyperparameters","are","obtained","by","optimizing","the","marginal","log","likelihood",".","This","code","is","based","on","the","implementation","of","RoBO",":","Klein",",","A.","and","Falkner",",","S.","and","Mansur",",","N.","and","Hutter",",","F.","RoBO",":","A","Flexible","and","Robust","Bayesian","Optimization","Framework","in","Python","In",":","NIPS","2017","Bayesian","Optimization","Workshop","Parameters","--","--","--","--","--","configspace",":","ConfigurationSpace","kernel",":","Kernel","Kernel","which","is","used","for","the","Gaussian","process",".","n_restarts",":","int",",","defaults","to","10","Number","of","restarts","for","the","Gaussian","process","hyperparameter","optimization",".","normalize_y",":","bool",",","defaults","to","True","Zero","mean","unit","variance","normalization","of","the","output","values",".","instance_features",":","dict","[","str",",","list","[","int","|","float","]","]","|","None",",","defaults","to","None","Features","(","list","of","int","or","floats",")","of","the","instances","(","str",")",".","The","features","are","incorporated","into","the","X","data",",","on","which","the","model","is","trained","on",".","pca_components",":","float",",","defaults","to","7","Number","of","components","to","keep","when","using","PCA","to","reduce","dimensionality","of","instance","features",".","seed",":","int"]
code: def _get_gaussian_process(self) -> GaussianProcessRegressor:
      return GaussianProcessRegressor(
          kernel=self._kernel,
          normalize_y=False,  # We do not use scikit-learn's normalize routine
          optimizer=None,
          n_restarts_optimizer=0,  # We do not use scikit-learn's optimization routine
          alpha=0,  # Governed by the kernel
          random_state=self._rng,
      )
  
imports: from __future__ import annotations
  from typing import Any, Optional, TypeVar, cast
  import logging
  import numpy
  from ConfigSpace import ConfigurationSpace
  from scipy import optimize
  from sklearn.gaussian_process import GaussianProcessRegressor
  from sklearn.gaussian_process.kernels import Kernel
  from smac.constants import VERY_SMALL_NUMBER
  from smac.model.gaussian_process.abstract_gaussian_process import AbstractGaussianProcess
  from smac.model.gaussian_process.priors.abstract_prior import AbstractPrior
label_desc: Use image node_id 4 for calling the GaussianProcess obj's underlying member method code with example usage: obj._get_gaussian_process() and returns: GaussianProcessRegressor