class_docstr: Extreme Deconvolution
  
  Fit an extreme deconvolution (XD) model to the data
  
  Parameters
  ----------
  n_components: integer
      number of gaussian components to fit to the data
  max_iter: integer (optional)
      number of EM iterations to perform (default=100)
  tol: float (optional)
      stopping criterion for EM iterations (default=1E-5)
  
  Notes
  -----
  This implementation follows Bovy et al. arXiv 0905.2979
class_docstr_tok: ["Extreme","Deconvolution","Fit","an","extreme","deconvolution","(","XD",")","model","to","the","data","Parameters","--","--","--","--","--","n_components",":","integer","number","of","gaussian","components","to","fit","to","the","data","max_iter",":","integer","(","optional",")","number","of","EM","iterations","to","perform","(","default=100",")","tol",":","float","(","optional",")","stopping","criterion","for","EM","iterations","(","default=1E-5",")","Notes","--","--","-","This","implementation","follows","Bovy","et","al",".","arXiv","0905.2979"]
docstr: Compute the log-likelihood of data given the model
  
  Parameters
  ----------
  X: array_like
      data, shape = (n_samples, n_features)
  Xerr: array_like
      errors, shape = (n_samples, n_features, n_features)
  
  Returns
  -------
  logL : float
      log-likelihood
docstr_tok: ["Compute","the","log-likelihood","of","data","given","the","model","Parameters","--","--","--","--","--","X",":","array_like","data",",","shape","=","(","n_samples",",","n_features",")","Xerr",":","array_like","errors",",","shape","=","(","n_samples",",","n_features",",","n_features",")","Returns","--","--","--","-","logL",":","float","log-likelihood"]
code: def logL(self, X, Xerr):
      """Compute the log-likelihood of data given the model
  
      Parameters
      ----------
      X: array_like
          data, shape = (n_samples, n_features)
      Xerr: array_like
          errors, shape = (n_samples, n_features, n_features)
  
      Returns
      -------
      logL : float
          log-likelihood
      """
      return np.sum(logsumexp(self.logprob_a(X, Xerr), -1))
  
file_path: astroML/astroML/density_estimation/xdeconv.py
imports: from time import time
  import numpy
  from scipy import linalg
  from sklearn.base import BaseEstimator
  from sklearn.mixture import GaussianMixture
  from sklearn.utils import check_random_state
  from ..utils import log_multivariate_gaussian
label_desc: Use image node_id 4 for calling the XDGMM obj's underlying member method code with example usage: obj.logL(X, Xerr) and returns: np