class_docstr: A class to compute different acquisition function values.
  
  Parameters
  ----------
  kind : string
      specification of utility function to use
  kappa : float
      parameter usedd for 'ucb' acquisition function
  xi : float
      parameter usedd for 'ei' and 'poi' acquisition function
docstr: Expected Improvement (EI) utility function
  
  Parameters
  ----------
  x : numpy array
      parameters
  gp : GaussianProcessRegressor
  y_max : float
      maximum target value observed so far
  xi : float
  
  Returns
  -------
  float
code: def _ei(x, gp, y_max, xi):
      """
      Expected Improvement (EI) utility function
  
      Parameters
      ----------
      x : numpy array
          parameters
      gp : GaussianProcessRegressor
      y_max : float
          maximum target value observed so far
      xi : float
  
      Returns
      -------
      float
      """
      with warnings.catch_warnings():
          warnings.simplefilter("ignore")
          mean, std = gp.predict(x, return_std=True)
  
      z = (mean - y_max - xi) / std
      return (mean - y_max - xi) * norm.cdf(z) + std * norm.pdf(z)
  
file_path: nni/nni/algorithms/hpo/gp_tuner/util.py
imports: import warnings
  import numpy
  from scipy.stats import norm
  from scipy.optimize import minimize
label_desc: Use image node_id 4 for calling the UtilityFunction obj's underlying member method code with example usage: obj._ei(x, gp, y_max, xi) and returns: unknown