class_docstr: General class for handling a Gaussian Process in GPyOpt.
  
  :param kernel: GPy kernel to use in the GP model.
  :param noise_var: value of the noise variance if known.
  :param exact_feval: whether noiseless evaluations are available. IMPORTANT to make the optimization work well in noiseless scenarios (default, False).
  :param n_samples: number of MCMC samples.
  :param n_burnin: number of samples not used.
  :param subsample_interval: sub-sample interval in the MCMC.
  :param step_size: step-size in the MCMC.
  :param leapfrog_steps: ??
  :param verbose: print out the model messages (default, False).
  
  .. Note:: This model does MCMC over the hyperparameters.
code: def __init__(
      self,
      kernel=None,
      noise_var=None,
      exact_feval=False,
      n_samples=10,
      n_burnin=100,
      subsample_interval=10,
      step_size=1e-1,
      leapfrog_steps=20,
      verbose=False,
  ):
      self.kernel = kernel
      self.noise_var = noise_var
      self.exact_feval = exact_feval
      self.verbose = verbose
      self.n_samples = n_samples
      self.subsample_interval = subsample_interval
      self.n_burnin = n_burnin
      self.step_size = step_size
      self.leapfrog_steps = leapfrog_steps
      self.model = None
  
imports: import numpy
  import GPy
  from .base import BOModel
label_desc: Use image node_id 1 to create a new GPModel_MCMC object from inherited base classes: BOModel with example: obj = GPModel_MCMC(kernel, noise_var, exact_feval, n_samples, n_burnin, subsample_interval, step_size, leapfrog_steps, verbose)