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"]
code: def __init__(
      self,
      n_components,
      max_iter=100,
      tol=1e-5,
      verbose=False,
      random_state=None,
  ):
      self.n_components = n_components
      self.max_iter = max_iter
      self.tol = tol
      self.verbose = verbose
      self.random_state = random_state
  
      # model parameters: these are set by the fit() method
      self.V = None
      self.mu = None
      self.alpha = None
  
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 1 to create a new XDGMM object from inherited base classes: BaseEstimator with example: obj = XDGMM(n_components, max_iter, tol, verbose, random_state)