To install requirements:
pip install -r requirements.txt
You can train each stage separately (the encoders, the single-variable prototypes, and multivariable prototypes).
python3 -m src.train.encoding.train --dataset <dataset>to train the univariate encoders.python3 -m src.train.single_variable_prototypes.kmeans_silhouette --dataset <dataset>to compute the optimal number of single-variable prototypes for each variable in your data.python3 -m src.train.single_variable_prototypes.train --dataset <dataset> --initializeto initialize the single-variable prototypes with k-means++ and then train them.python3 -m src.train.multivariable_prototypes.train --dataset <dataset>to train the multivariable prototypes.
Once you've determined your hyperparameters, you can run the pipeline end-to-end:
python3 -m src.eval.end_to_end --dataset <dataset> --resamples <resamples>
Our learned models are located in src/models and are organized by dataset. src/models/comparisons contains saved models for our ablation studies on our simulated dataset.
To evaluate the fully trained model on the test set:
python -m src.eval.eval --dataset <dataset>