Poisson-randomized gamma dynamical systems
An Anaconda environment is included at environment.yml. Run the following command in the home directory to create an Anaconda environment with all necessary packages and configurations:
conda env create -f environment.yml
This will create an environment called
pgds. To acivate it, type:
conda activate prgds
Then you should be able to compile the code by changing directory to the src/ folder and typing
cd src/ make
What's included in src:
- apf.pyx: Allocation-based Poisson factorization (APF). This is the base class for Poisson tensor decomposition models with non-negative priors.
- bessel.pyx: Sampling algorithms for the Bessel distribution.
- sbch.pyx: Sampling algorithms for the size-biased confluent hypergeometric (SCH) distribution.
- pgds.pyx: Tensor generalization of Poisson--gamma dynamical systems (PGDS) of Schein et al. (2016).
- prgds.pyx: Poisson-randomized gamma dynamical systems (PRGDS).
- bpmf.pyx: Bayesian Poisson matrix factorization (BPMF).
- bpmf_example.ipynb: Example using BPMF for count or matrix factorization.
OSX users will have to install a version of the GNU Compiler Collection (GCC). If using Anaconda,
conda install -c conda-forge gcc
and then change the relevant line in setup.py. OSX users may run into issues compiling on MacOS 10.14 or greater which can be fixed by following the solutions in this thread.
OSX users will also have to install the GNU Scientific library (GSL). If using Anaconda,
conda install -c conda-forge gsl
OSX users with problems compiling may find answers to this question useful.