docstr: Computes the probability density function at all x_test
docstr_tok: ["Computes","the","probability","density","function","at","all","x_test"]
code: def pdf(self, x_test):
      """
      Computes the probability density function at all x_test
      """
      N, D = self.data.shape
      x_test = np.asfortranarray(x_test)
      x_test = x_test.reshape([-1, D])
  
      pdfs = self._individual_pdfs(x_test)
      # import pdb; pdb.set_trace()
      # combine values based on fully_dimensional!
      if self.fully_dimensional:
          # first the product of the individual pdfs for each point in the data across dimensions and then the average (factorized kernel)
          pdfs = np.sum(
              np.prod(pdfs, axis=-1) * self.weights[None, :], axis=-1
          )
      else:
          # first the average over the 1d pdfs and the the product over dimensions (TPE like factorization of the pdf)
          pdfs = np.prod(
              np.sum(pdfs * self.weights[None, :, None], axis=-2),
              axis=-1,
          )
      return pdfs
  
file_path: auptimizer/src/aup/Proposer/hpbandster/optimizers/kde/mvkde.py
imports: import numpy
  import scipy.optimize
  import ConfigSpace
  from hpbandster.optimizers.kde.kernels import Gaussian, AitchisonAitken, WangRyzinOrdinal, WangRyzinInteger
label_desc: Use image node_id 8 for calling the MultivariateKDE obj's underlying member method code with example usage: obj.pdf(x_test) and returns: pdfs