# libmef – A library for mixtures of exponential families

## Description

libmef is a C library allowing to manipulate, learn, simplify and compare mixtures of exponential families. It is designed to ease the use of various exponential families in mixture models.

See also jMEF for a Java implementation of the same kind of library and pyMEF for a Python version.

The C implementation allows to easily binds the library to other languages and thus to put mixtures of exponential families into your application.

## What are exponential families?

An exponential family is a generic set of probability distributions that admit the following canonical distribution:

$p_F(x; \theta) = \exp \left( \langle t(x) | \theta \rangle - F(\theta) + k(x) \right)$

Exponential families are characterized by the log normalizer function F, and include the following well-known distributions: Gaussian (generic, isotropic Gaussian, diagonal Gaussian, rectified Gaussian or Wald distributions, lognormal), Poisson, Bernoulli, binomial, multinomial, Laplacian, Gamma (incl. chi-squared), Beta, exponential, Wishart, Dirichlet, Rayleigh, probability simplex, negative binomial distribution, Weibull, von Mises, Pareto distributions, skew logistic, etc.

Mixtures of exponential families provide a generic framework for handling Gaussian mixture models (GMMs also called MoGs for mixture of Gaussians), mixture of Poisson distributions, and Laplacian mixture models as well.

## Documentation

### Algorithms

• Bregman Soft Clustering
• Bregman Hard Clustering (soon)
• Kernel Density Estimator (soon)
• $$k$$-MLE
• $$k$$-MLE for Gamma mixtures
• $$k$$-MLE for generalized Gaussian mixtures
• Gaussian EM
• Gamma EM

### Families

• Univariate Gaussian
• Gamma
• Generalized Gaussian

Do not hesitate to contribute with your own family (tutorial to come)

### Examples

See the examples/ sub-directory inside the sources or browse online at http://hub.darcs.net/oschwand/libmef/examples.

## Installation

### Compilation

You will need cmake and the GNU Scientific Library in order to compile libmef.

cmake .
make
cd examples; make # for the examples


## Bibliography

• Olivier Schwander and Frank Nielsen, Fast learning of Gamma mixture models with k-MLE, SIMBAD 2013
• Olivier Schwander, Frank Nielsen, Aurélien Schutz and Yannick Berthoumieu, k-MLE for mixtures of generalized Gaussians, , ICPR 2012
• Olivier Schwander and Frank Nielsen, Learning Mixtures by Simplifying Kernel Density Estimators, in Matrix Information Geometry, Springer, 2012
• Olivier Schwander and Frank Nielsen, pyMEF - A framework for Exponential Families in Python, in Proceedings of the 2011 IEEE Workshop on Statistical Signal Processing
• Vincent Garcia, Frank Nielsen, and Richard Nock, Levels of details for Gaussian mixture models, in Proceedings of the Asian Conference on Computer Vision, Xi'an, China, September 2009
• Frank Nielsen and Vincent Garcia, Statistical exponential families: A digest with flash cards, arXiV, http://arxiv.org/abs/0911.4863, November 2009
• Frank Nielsen and Richard Nock, Sided and symmetrized Bregman centroids, in IEEE Transactions on Information Theory, 2009, 55, 2048-2059
• Frank Nielsen, Jean-Daniel Boissonnat and Richard Nock, On Bregman Voronoi diagrams, in ACM-SIAM Symposium on Data Mining, 2007, 746-755
• A. Banerjee, S. Merugu, I. Dhillon, and J. Ghosh, Clustering with Bregman divergences, in Journal of Machine Learning Research, 2005, 6, 234-245

## Contacts

Please send any comment or bug report to Olivier Schwander.

Created: 2013-07-05 ven. 13:12

Emacs 24.3.1 (Org mode 8.0.3)

Validate XHTML 1.0