class_docstr: Student-T Process expected improvement acquisition function.
  
  Computes the analytic sequential expected improvement for a Student-T process
  model.
  
  Requires that `predictive_distribution` has a `mean`, `stddev` method.
  
  #### Examples
  
  Build and evaluate a Student T Process Expected Improvement acquisition
  function.
  
  ```python
  import numpy as np
  import tensorflow_probability as tfp
  
  tfd = tfp.distributions
  tfpk = tfp.math.psd_kernels
  tfp_acq = tfp.experimental.bayesopt.acquisition
  
  # Sample 10 5-dimensional index points and associated observations.
  index_points = np.random.uniform(size=[10, 5])
  observations = np.random.uniform(size=[10])
  
  # Build a Student T Process regression model over the function values at
  # `predictive_index_points` conditioned on observations.
  predictive_index_points = np.random.uniform(size=[8, 5])
  dist = tfd.StudentTProcessRegressionModel(
      kernel=tfpk.MaternFiveHalves(),
      df=5.,
      observation_index_points=index_points,
      observations=observations,
      predictive_index_points=predictive_index_points)
  
  # Define a Student T Process Expected Improvement acquisition function.
  stp_ei = tfp_acq.StudentTProcessExpectedImprovement(
      predictive_distribution=dist,
      observations=observations,
      exploration=0.02)
  
  # Evaluate the acquisition function at `predictive_index_points`.
  acq_fn_vals = stp_ei()  # Has shape [8].
  
  # Evaluate the acquisition function at a new set of predictive index points.
  new_pred_index_points = np.random.uniform(size=[6, 5])
  acq_fn_vals = stp_ei(pred_index_points)  # Has shape [6].
  ```
class_docstr_tok: ["Student-T","Process","expected","improvement","acquisition","function",".","Computes","the","analytic","sequential","expected","improvement","for","a","Student-T","process","model",".","Requires","that","`","predictive_distribution","`","has","a","`","mean","`",",","`","stddev","`","method",".","#","#","#","#","Examples","Build","and","evaluate","a","Student","T","Process","Expected","Improvement","acquisition","function",".","``","`","python","import","numpy","as","np","import","tensorflow_probability","as","tfp","tfd","=","tfp.distributions","tfpk","=","tfp.math.psd_kernels","tfp_acq","=","tfp.experimental.bayesopt.acquisition","#","Sample","10","5-dimensional","index","points","and","associated","observations",".","index_points","=","np.random.uniform","(","size=","[","10",",","5","]",")","observations","=","np.random.uniform","(","size=","[","10","]",")","#","Build","a","Student","T","Process","regression","model","over","the","function","values","at","#","`","predictive_index_points","`","conditioned","on","observations",".","predictive_index_points","=","np.random.uniform","(","size=","[","8",",","5","]",")","dist","=","tfd.StudentTProcessRegressionModel","(","kernel=tfpk.MaternFiveHalves","(",")",",","df=5.",",","observation_index_points=index_points",",","observations=observations",",","predictive_index_points=predictive_index_points",")","#","Define","a","Student","T","Process","Expected","Improvement","acquisition","function",".","stp_ei","=","tfp_acq.StudentTProcessExpectedImprovement","(","predictive_distribution=dist",",","observations=observations",",","exploration=0.02",")","#","Evaluate","the","acquisition","function","at","`","predictive_index_points","`",".","acq_fn_vals","=","stp_ei","(",")","#","Has","shape","[","8","]",".","#","Evaluate","the","acquisition","function","at","a","new","set","of","predictive","index","points",".","new_pred_index_points","=","np.random.uniform","(","size=","[","6",",","5","]",")","acq_fn_vals","=","stp_ei","(","pred_index_points",")","#","Has","shape","[","6","]",".","``","`"]
docstr: Compute Expected Improvement w.r.t a Student-T Process analytically.
  
  Args:
    predictive_distribution: `tfd.Distribution`-like, the distribution over
      observations at a set of index points. Must have `mean`, `stddev`
      methods.
    observations: `Float` `Tensor` of observations. Shape has the form
      `[b1, ..., bB, e]`, where `e` is the number of index points (such that
      the event shape of `predictive_distribution` is `[e]`) and
      `[b1, ..., bB]` is broadcastable with the batch shape of
      `predictive_distribution`.
    seed: PRNG seed; see tfp.random.sanitize_seed for details.
    exploration: Exploitation-exploration trade-off parameter.
docstr_tok: ["Compute","Expected","Improvement","w.r.t","a","Student-T","Process","analytically",".","Args",":","predictive_distribution",":","`","tfd.Distribution","`","-like",",","the","distribution","over","observations","at","a","set","of","index","points",".","Must","have","`","mean","`",",","`","stddev","`","methods",".","observations",":","`","Float","`","`","Tensor","`","of","observations",".","Shape","has","the","form","`","[","b1",",","...",",","bB",",","e","]","`",",","where","`","e","`","is","the","number","of","index","points","(","such","that","the","event","shape","of","`","predictive_distribution","`","is","`","[","e","]","`",")","and","`","[","b1",",","...",",","bB","]","`","is","broadcastable","with","the","batch","shape","of","`","predictive_distribution","`",".","seed",":","PRNG","seed",";","see","tfp.random.sanitize_seed","for","details",".","exploration",":","Exploitation-exploration","trade-off","parameter","."]
code: def __init__(
      self,
      predictive_distribution,
      observations,
      seed=None,
      exploration=0.01,
  ):
      """Compute Expected Improvement w.r.t a Student-T Process analytically.
  
      Args:
        predictive_distribution: `tfd.Distribution`-like, the distribution over
          observations at a set of index points. Must have `mean`, `stddev`
          methods.
        observations: `Float` `Tensor` of observations. Shape has the form
          `[b1, ..., bB, e]`, where `e` is the number of index points (such that
          the event shape of `predictive_distribution` is `[e]`) and
          `[b1, ..., bB]` is broadcastable with the batch shape of
          `predictive_distribution`.
        seed: PRNG seed; see tfp.random.sanitize_seed for details.
        exploration: Exploitation-exploration trade-off parameter.
      """
  
      self._exploration = exploration
      super(StudentTProcessExpectedImprovement, self).__init__(
          predictive_distribution=predictive_distribution,
          observations=observations,
          seed=seed,
      )
  
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 1 to create a new StudentTProcessExpectedImprovement object from inherited base classes: acquisition_function with example: obj = StudentTProcessExpectedImprovement(predictive_distribution, observations, seed, exploration)