# README for Dimensionality Reduction Methods - Code and Results

## Introduction
This repository contains code and results for various dimensionality reduction (DR) methods discussed in our paper. Below, we provide an overview of the notebooks and files included.

## Notebooks and Methods

1. **Method Notebooks**:
   - `DVMIB-betaVAE-best.ipynb`: Implementation and results for beta-VAE.
   - `DVMIB-DVCCA-best.ipynb`: Implementation and results for beta-DVCCA.
   - `DVMIB-DVIB-best.ipynb`: Implementation and results for DVIB.
   - `DVMIB-DVCCA-private-best.ipynb`: Implementation and results for DVCCA with private information.
   - `DVMIB-DVSIB-best.ipynb`: Implementation and results for DVSIB.
   - `DVMIB-DVSIB-private-best.ipynb`: Implementation and results for DVSIB with private information.
   - `DVMIB-CCA-best.ipynb`: Implementation and results for traditional CCA. 
All methods can be tuned for different `beta` and `dz` values, including the special case of `beta=1`.
Note that DVCCA and DVCCA-private contain joint implementations as well.

2. **Data Generation Notebook**:
   - `DVMIB-Data Generation.ipynb`: Demonstrates how our version of Noisy MNIST data is generated, and how it is split into training, testing, and validation sets for training all the methods.

3. **Baselines and Results Notebook**:
   - `DVMIB-Baselines.ipynb`: Contains classifiers (Linear SVM and Neural Network) used to report accuracies in the paper. Additionally, it presents results of applying the classifiers on the original datasets directly.

4. **Results Files**:
   - Multiple `.txt` files: These files contain the outputs of runs for various methods conducted on a cluster.

5. **Results Analysis Notebook**:
   - `Methods Results.ipynb`: This notebook reads and analyzes the `.txt` files, specifying the meaning and labels of each file, and plots them to visualize the entire phase spaces. It also contains plots of different sweeps performed and the corresponding tables for best parameters, especially for `dz=2`.

## Usage
Please refer to the specific notebooks for details on how to run and reproduce the experiments for each method.

For any questions or assistance, please feel free to contact us.
