class_docstr: Bayesian Optimization with Input Warped GP using Kumar Warping
  
  The Kumar warping only applies to the numerical variables: continuous and discrete
  
  Parameters
  ----------
  space : object
      Instance of Design_space defined in GPyOpt.core.task.space
  
  warping_function : object, optional
      Warping function defined in GPy.util.input_warping_functions.py. Default is Kumar warping
  
  kernel : object, optional
      An instance of kernel function defined in GPy.kern. Default is Matern 52
  
  noise_var : float, optional
      Value of the noise variance if known
  
  exact_feval : bool, optional
      Whether noiseless evaluations are available.
      IMPORTANT to make the optimization work well in noiseless scenarios, Default is False
  
  optimizer : string, optional
      Optimizer of the model. Check GPy for details. Default to bfgs
  
  max_iter : int, optional
      Maximum number of iterations used to optimize the parameters of the model. Default is 1000
  
  optimize_restarts : int, optional
      Number of restarts in the optimization. Default is 5
  
  verbose : bool, optional
      Whether to print out the model messages. Default is False
code: def _create_model(self, X, Y):
      # --- define kernel
      self.input_dim = X.shape[1]
      if self.kernel is None:
          self.kernel = GPy.kern.Matern52(
              self.input_dim, variance=1.0, ARD=self.ARD
          )  # + GPy.kern.Bias(self.input_dim)
      else:
          self.kernel = self.kernel
  
      # --- define model
      noise_var = (
          Y.var() * 0.01 if self.noise_var is None else self.noise_var
      )
  
      self.model = GPy.models.InputWarpedGP(
          X,
          Y,
          kernel=self.kernel,
          warping_function=self.warping_function,
          warping_indices=self.warping_indices,
          Xmin=X.min(axis=0),
          Xmax=X.max(axis=0),
      )
  
      # --- restrict variance if exact evaluations of the objective
      if self.exact_feval:
          self.model.Gaussian_noise.constrain_fixed(1e-6, warning=False)
      else:
          self.model.Gaussian_noise.constrain_bounded(
              1e-9, 1e6, warning=False
          )
  
imports: from .gpmodel import GPModel
  import numpy
  import GPy
label_desc: Use image node_id 2 for calling the InputWarpedGPModel obj's underlying member method code with example usage: obj._create_model(X, Y) without return types