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.
docstr: Makes a safe copy of the model.
docstr_tok: ["Makes","a","safe","copy","of","the","model","."]
code: def copy(self):
      """
      Makes a safe copy of the model.
      """
  
      copied_model = GPModel(
          kernel=self.model.kern.copy(),
          noise_var=self.noise_var,
          exact_feval=self.exact_feval,
          n_samples=self.n_samples,
          n_burnin=self.n_burnin,
          subsample_interval=self.subsample_interval,
          step_size=self.step_size,
          leapfrog_steps=self.leapfrog_steps,
          verbose=self.verbose,
      )
  
      copied_model._create_model(self.model.X, self.model.Y)
      copied_model.updateModel(self.model.X, self.model.Y, None, None)
      return copied_model
  
imports: import numpy
  import GPy
  from .base import BOModel
label_desc: Use image node_id 7 for calling the GPModel_MCMC obj's underlying member method code with example usage: obj.copy() and returns: copied_model