Skip to content

qydongemma/DPPy

 
 

Repository files navigation

DPPy: Sampling Determinantal Point Processes with Python

Documentation Status Build Status Coverage Status

"Anything that can go wrong, will go wrong". − Murphy's Law

Introduction

Determinantal point processes (DPPs) are specific probability distributions over clouds of points that have been popular as models or computational tools across physics, probability, statistics, and more recently of booming interest in machine learning. Sampling from DPPs is a nontrivial matter, and many approaches have been proposed. DPPy is a Python library that puts together all exact and approximate sampling algorithms for DPPs.

Requirements

DPPy works with Python 3.4+.

Dependencies

Installation

Long story short, since the name DPPy is being squatted we decided to release the project under the name DPPyPI on PyPI and you can install it using

pip install DPPyPI

However you may not work with the latest version, so

  1. If you have a GitHub account
    • Please consider forking DPPy
    • Use git to clone your copy of the repo

      cd <directory_of_your_choice>
      git clone https://github.com/<username>/DPPy.git
  2. If you only use git, clone this repository

    cd <directory_of_your_choice>
    git clone https://github.com/guilgautier/DPPy.git
  3. Otherwise simply dowload the project
  4. In any case, install the project with

    cd DPPy
    pip install .

Tutorial in a Jupyter notebook

You can read and work on this interactive tutorial, directly from your web browser, without having to download or install Python or anything. Just click, wait a little bit, and play with the notebook!

Contribute to the documentation

The documentation is generated locally with Sphinx and then built online by ReadTheDocs.

If you wish to contribute to the documentation or just play with it locally, you can:

  • Install Sphinx

    pip install -U sphinx
  • Generate the docs locally

    cd DPPy/docs
    make html
  • Open the local HTML version of the documentation located at DPPy/docs/_build/html/index.html

    open _build/html/index.html

If you wish pull request your contribution, please use the docs branch.

How to cite this work?

We wrote a companion paper to DPPy for latter submission to the MLOSS track of JMLR.

The companion paper is available on

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

@article{GaBaVa18,
    archivePrefix = {arXiv},
    arxivId = {1809.07258},
    author = {Gautier, Guillaume 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/}
}

Reproducibility

We would like to thank Guillermo Polito for leading our reproducible research workgroup, this project owes him a lot.

Take a look at the corresponding booklet to learn more on how to make your research reproducible!

About

Python library for sampling Determinantal Point Processes

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 80.6%
  • Jupyter Notebook 18.7%
  • Shell 0.7%