To run the code, you will have to install the packages provided in the libs
folder (move to libs/eftk
and libs/efplt
and run pip install .
)
The code depends on the following packages; numpy
, scipy
, matplotlib
, tqdm
and scikit-learn
, all available through pip install [x]
.
The code assume that the datasets (the content of datasets.zip
) is stored in a data
folder in your home, ~/data
.
The main file to run the experiment is experiments/main.py
.
Calling python experiments/main.py -h
should output the following help:
usage: main.py [-h] (-misspec | -optim | -vecfield) [-run] [-plot] [-appendix]
[-save] [-show]
Experiment Runner
optional arguments:
-h, --help show this help message and exit
Experiment selection:
-misspec Misspecification experiment
-optim Optimization experiment
-vecfield Vector field visualization
Action selection:
At least one of [-run, -plot] is required
-run Runs the experiment and save results as a .pk file
-plot Plots the result from a .pk file (requires -save and/or -show)
-appendix Also run/plot the experiments in the appendix
Plotting options:
At least one of [-save, -show] is required if plotting
-save Save the plots
-show Show the plots
The -vecfield
experiment (Fig. 1) needs to run the various optimizers from the 4 starting points and save the trajectories.
First call python main.py -vecfield -run
, which will save the results in a vecfield.pk
file in the current directory.
You will then be able to call python main.py -vecfield -plot -show
.
The -run
part of the experiment should be relatively quick (~10min)
The -misspec
experiment (Fig. 2) does not need pre-computation and the plot can be generated using python main.py -misspec -plot -show
The -optim
experiment (Fig. 3) first needs to do a (rather large) grid search, run with python main.py -optim -run
, which will save a optim.pk
file in the current directory.
The plots can then be produced with python main.py -optim -plot -show
.
The grid search can take up to 2 hours depending on the computer used.
The results in the appendix can be generated (first -run
and then -plot
) by adding the -appendix
flag.
The figures are generated using Matplotlib's Latex backend, and thus need a working latex installation.
On Ubuntu, you might need to install apt-get install dvipng