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:
exact and approximate samplers for finite DPPs 💥
random matrix models (full and banded) for \(\beta\)-Ensembles 🔥
Multivariate Jacobi ensemble used for Monte Carlo integration 🎲
exact samplers for more Exotic DPPs 🌴
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.
\(\beta=2\)-Laguerre ensemble |
|
\(\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 got accepted for publication in the MLOSS track of JMLR.
If you use this package, please consider citing it with this piece of BibTeX:
@article{GPBV19,
author = {Gautier, Guillaume and Polito, Guillermo and Bardenet, R{\'{e}}mi and Valko, Michal},
journal = {Journal of Machine Learning Research - Machine Learning Open Source Software (JMLR-MLOSS)},
title = {{DPPy: DPP Sampling with Python}},
keywords = {Computer Science - Machine Learning, Computer Science - Mathematical Software, Statistics - Machine Learning},
url = {http://jmlr.org/papers/v20/19-179.html},
year = {2019},
archivePrefix = {arXiv},
arxivId = {1809.07258},
note = {Code at http://github.com/guilgautier/DPPy/ Documentation at http://dppy.readthedocs.io/}
}