/iVAE

Primary LanguagePythonMIT LicenseMIT

Binary iVAE

Identifiable VAE (iVAE) implementation adapted for binary data, based on Ilyes Khemakhem's code.

Install the virtual environment and dependencies listed at environment/ (see conda_env.sh for example).

To reproduce some of the baseline results from the paper Binary independent component analysis: a non-stationarity-based approach, run:

Run the iVAE with: python ivae.py --obs_data_path data_5_40_1000_1.csv --mix_data_path mix_5_40_1000_1.csv --s 0 --config binary-6-2-lbfgs-100-seg.yaml --ckpt_folder='run/checkpoints/'

Run FastICA with: python fastica.py --obs_data_path data_5_40_1000_1.csv --mix_data_path mix_5_40_1000_1.csv --s 0 --config binary-6-2-lbfgs-100-seg.yaml --ckpt_folder='run/checkpoints/'

The results are stored in a CSV file in run/ with the name of the dataset.

The file mix_5_40_1000_1.csv contains the mixing matrix and data_5_40_1000_1.csv contains the observed variables in the first n-1 columns and the additionally observed variable in the last column. The config file binary-6-2-lbfgs-100-seg.yaml does not define any of the data attributes, since those are used directly from the data files.