code: def student_t_expected_improvement(
      best_observed, df, mean, stddev, exploration=0.01
  ):
      """Student-T distribution expected improvement.
  
      Args:
        best_observed: Array of best (largest) observed values. Must broadcast with
          `mean` and `stddev`.
        df: Student T degrees of freedom.
        mean: Array of predicted means. Must broadcast with `best_observed` and
          `stddev`.
        stddev: Array of predicted standard deviations. Must broadcast with
          `best_observed` and `mean`.
        exploration: Float parameter controlling the exploration/exploitation
          tradeoff.
  
      Returns:
        ei: Array of expected improvement values.
      """
      dtype = dtype_util.common_dtype([best_observed, df, mean, stddev])
      best_observed = tf.convert_to_tensor(best_observed, dtype=dtype)
      df = tf.convert_to_tensor(df, dtype=dtype)
      mean = tf.convert_to_tensor(mean, dtype=dtype)
      stddev = tf.convert_to_tensor(stddev, dtype=dtype)
      st = student_t.StudentT(df, tf.zeros([], dtype=dtype), 1.0)
      imp = mean - best_observed - exploration
      z = imp / stddev
      return stddev * (
          z * st.cdf(z)
          + df / (df - 1.0) * (1 + tf.math.square(z) / df) * st.prob(z)
      )
  
imports: import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import student_t
  from tensorflow_probability.python.experimental.bayesopt.acquisition import acquisition_function
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import samplers
label_desc: Use image node_id 2 for calling a global function with example usage: student_t_expected_improvement(best_observed, df, mean, stddev, exploration) and returns: unknown