This is a Python class for using Gaussian mixtures to do density estimation of noisy, heterogenous, and incomplete data using extreme deconvolution (XD) algorithms which is compatible with the scikit-learn machine learning methods. It implements both the astroML and Bovy et al. (2011) algorithms, and extends the BaseEstimator class from scikit-learn so that cross-validation methods will work. It allows the user to produce a conditioned model if values of some parameters are known.
The code currently supports the astroML and Bovy et al. (2011) algorithms for XDGMM fitting and sampling.
Compatibility note: Versions of astroML prior to May 20, 2015 contain a bug that causes an error with scoring samples. We recommend using later versions of astroML in order to avoid this.
This class is compatible with cross validation methods from scikit-learn. See the demo for an example of this functionality.
XDGMM also allows the user to produce a conditional XDGMM distribution given values for some of the parameters used to create the model. For example, if parameters A, B, and C were used to fit a model and the value of C is known, you can produce a model for just parameters A and B that is conditioned on the known value of C.
This is research in progress. All content is Copyright 2016 The Authors, and our code will be available for re-use under the MIT License (which basically means you can do anything you like with it but you can't blame us if it doesn't work). If you end up using any of the ideas or code in this repository in your own research, please cite Holoien, Marshall, & Wechsler (2016), and provide a link to this repo's URL: https://github.com/tholoien/XDGMM. However, long before you get to that point, we'd love it if you got in touch with us! You can write to us with comments or questions any time using this repo's issues. We welcome new collaborators!
People working on this project:
- Tom Holoien (Carnegie Observatories, @tholoien)
- Phil Marshall (KIPAC, @drphilmarshall)
- Risa Wechsler (KIPAC, @rhw)