pyDPP
A python package for sampling from determinantal point processes. Below are instances of sampling from a bicluster and from a random set of points using pyDPP. Refer to examples and references for more information.
Usage
Usage example:
>>> from pydpp.dpp import DPP >>> import numpy as np >>> X = np.random.random((10,10)) >>> dpp = DPP(X) >>> dpp.compute_kernel(kernel_type = 'rbf', sigma= 0.4) # use 'cos-sim' for cosine similarity >>> samples = dpp.samples() # samples := [1,7,2,5] >>> ksamlpes = dpp.sample_k(3) # ksamples := [5,8,0]
Installation
Stable
The stable release can directly be installed by pip:
$ pip install pydpp
Dev
To get the project's source code, clone the github repository:
$ git clone https://github.com/satwik77/pyDPP.git $ cd pyDPP
Create a virtual environment and activate it. [optional]
$ [sudo] pip install virtualenv $ virtualenv -p python3 venv $ source venv/bin/activate (venv)$
Next, install all the dependencies in the environment.
(venv)$ pip install -r requirements.txt
Install the package into the virtual environment.
(venv)$ python setup.py install
Requirements
- Numpy
- Scipy
To run the example jupyter notebook you need install jupyter notebook, sklearn and matplotlib.
Compatibility
The package has been test with python 2.7 and python 3.5.2
Reference
- Kulesza, A. and Taskar, B., 2011. k-DPPs: Fixed-size determinantal point processes. In Proceedings of the 28th International Conference on Machine Learning (ICML-11) (pp. 1193-1200). [paper]
- Kulesza, A. and Taskar, B., 2012. Determinantal point processes for machine learning. Foundations and Trends® in Machine Learning, 5(2–3), pp.123-286. [paper]