class_docstr: This class takes the function to optimize as well as the parameters bounds
  in order to find which values for the parameters yield the maximum value
  using bayesian optimization.
  
  Parameters
  ----------
  f: function
      Function to be maximized.
  
  pbounds: dict
      Dictionary with parameters names as keys and a tuple with minimum
      and maximum values.
  
  constraint: A ConstraintModel. Note that the names of arguments of the
      constraint function and of f need to be the same.
  
  random_state: int or numpy.random.RandomState, optional(default=None)
      If the value is an integer, it is used as the seed for creating a
      numpy.random.RandomState. Otherwise the random state provided is used.
      When set to None, an unseeded random state is generated.
  
  verbose: int, optional(default=2)
      The level of verbosity.
  
  bounds_transformer: DomainTransformer, optional(default=None)
      If provided, the transformation is applied to the bounds.
  
  allow_duplicate_points: bool, optional (default=False)
      If True, the optimizer will allow duplicate points to be registered.
      This behavior may be desired in high noise situations where repeatedly probing
      the same point will give different answers. In other situations, the acquisition
      may occasionally generate a duplicate point.
  
  Methods
  -------
  probe()
      Evaluates the function on the given points.
      Can be used to guide the optimizer.
  
  maximize()
      Tries to find the parameters that yield the maximum value for the
      given function.
  
  set_bounds()
      Allows changing the lower and upper searching bounds
class_docstr_tok: ["This","class","takes","the","function","to","optimize","as","well","as","the","parameters","bounds","in","order","to","find","which","values","for","the","parameters","yield","the","maximum","value","using","bayesian","optimization",".","Parameters","--","--","--","--","--","f",":","function","Function","to","be","maximized",".","pbounds",":","dict","Dictionary","with","parameters","names","as","keys","and","a","tuple","with","minimum","and","maximum","values",".","constraint",":","A","ConstraintModel",".","Note","that","the","names","of","arguments","of","the","constraint","function","and","of","f","need","to","be","the","same",".","random_state",":","int","or","numpy.random.RandomState",",","optional","(","default=None",")","If","the","value","is","an","integer",",","it","is","used","as","the","seed","for","creating","a","numpy.random.RandomState",".","Otherwise","the","random","state","provided","is","used",".","When","set","to","None",",","an","unseeded","random","state","is","generated",".","verbose",":","int",",","optional","(","default=2",")","The","level","of","verbosity",".","bounds_transformer",":","DomainTransformer",",","optional","(","default=None",")","If","provided",",","the","transformation","is","applied","to","the","bounds",".","allow_duplicate_points",":","bool",",","optional","(","default=False",")","If","True",",","the","optimizer","will","allow","duplicate","points","to","be","registered",".","This","behavior","may","be","desired","in","high","noise","situations","where","repeatedly","probing","the","same","point","will","give","different","answers",".","In","other","situations",",","the","acquisition","may","occasionally","generate","a","duplicate","point",".","Methods","--","--","--","-","probe","(",")","Evaluates","the","function","on","the","given","points",".","Can","be","used","to","guide","the","optimizer",".","maximize","(",")","Tries","to","find","the","parameters","that","yield","the","maximum","value","for","the","given","function",".","set_bounds","(",")","Allows","changing","the","lower","and","upper","searching","bounds"]
docstr: Most promising point to probe next
docstr_tok: ["Most","promising","point","to","probe","next"]
code: def suggest(self, utility_function):
      """Most promising point to probe next"""
      if len(self._space) == 0:
          return self._space.array_to_params(
              self._space.random_sample()
          )
  
      # Sklearn's GP throws a large number of warnings at times, but
      # we don't really need to see them here.
      with warnings.catch_warnings():
          warnings.simplefilter("ignore")
          self._gp.fit(self._space.params, self._space.target)
          if self.is_constrained:
              self.constraint.fit(
                  self._space.params, self._space._constraint_values
              )
  
      # Finding argmax of the acquisition function.
      suggestion = acq_max(
          ac=utility_function.utility,
          gp=self._gp,
          constraint=self.constraint,
          y_max=self._space._target_max(),
          bounds=self._space.bounds,
          random_state=self._random_state,
          y_max_params=self._space.params[self._space.target.argmax()],
      )
  
      return self._space.array_to_params(suggestion)
  
imports: import warnings
  from bayes_opt.constraint import ConstraintModel
  from .target_space import TargetSpace
  from .event import Events, DEFAULT_EVENTS
  from .logger import _get_default_logger
  from .util import UtilityFunction, acq_max, ensure_rng
  from sklearn.gaussian_process.kernels import Matern
  from sklearn.gaussian_process import GaussianProcessRegressor
label_desc: Use image node_id 8 for calling the BayesianOptimization obj's underlying member method code with example usage: obj.suggest(utility_function) and returns: self, self