Documentation Status Build Status Coverage Status

Welcome to DPPy’s documentation!

Determinantal point processes (DPPs) are specific probability distributions over clouds of points, which have been popular as models or computational tools across physics, probability, statistics, random matrices, and more recently machine learning. DPPs are often used to induce diversity or repulsiveness among the points of a sample.

Sampling from DPPs is more tractable than sampling generic point processes with interaction, but it remains a nontrivial matter and a research area of its own.

As a contraction of DPPs and Python, DPPy is an effort to gather:

The purpose of this documentation is to both provide a quick survey of DPPs and relate each mathematical property with its implementation in DPPy. The documentation can thus be read in different ways:

  • if you read the sections in the order they appear, they will first take you through mathematical definitions and quick illustrations of how these definitions are encoded in DPPy.
  • for more a traditional library documentation please refer to the corresponding API sections documenting the methods of each object, along with pointers to the mathematical definitions if needed.
  • you can also directly jump to the Jupyter notebooks, which showcase the use of some DPPy objects in more detail.
a sample of a 2D jacobi ensemble histogram of the eigenvalues of the LUE
2D Multivariate Jacobi ensemble \(\beta=2\)-Laguerre ensemble
kernel of the DPP associated to the uniform measure on spanning trees of a graph graph associated to kernel K
\(\mathbf{K}\) kernel of Uniform Spanning Tree Graph associated to \(\mathbf{K}\)

Installation instructions

See the installation instructions on GitHub.

How to cite this work?

We wrote a companion paper to DPPy which is available on

If you use this package, please consider citing it with this piece of BibTeX:

@article{GPBV18,
  archivePrefix = {arXiv},
  arxivId = {1809.07258},
  author = {Gautier, Guillaume and Polito, Guillermo and Bardenet, R{\'{e}}mi and Valko, Michal},
  eprint = {1809.07258},
  journal = {ArXiv e-prints},
  title = {{DPPy: Sampling Determinantal Point Processes with Python}},
  keywords = {Computer Science - Machine Learning, Computer Science - Mathematical Software, Statistics - Machine Learning},
  url = {http://arxiv.org/abs/1809.07258},
  year = {2018},
  note = {Code at http://github.com/guilgautier/DPPy/ Documentation at http://dppy.readthedocs.io/}
}