This code base uses the Julia Language and DrWatson to make a reproducible scientific project named
Nys-IP-PMM
The project is a companion code for the article "Randomized Nyström Preconditioned Interior Point-Proximal Method of Multipliers", authored by Ya-Chi Chu, Luiz-Rafael Santos, Madeleine Udell. We provide the instructions to reproduce the experiments in the paper.
- Open a Julia console and run the following commands:
julia> using Pkg julia> Pkg.add("DrWatson") # install globally, for using `quickactivate` julia> Pkg.activate("path/to/this/project") julia> Pkg.instantiate()
- Run the script
scripts/Portfolio/run_portfolio.jl
. It will generate the data, run the experiments for the synthetic portfolio optimization problem, and save the results in the folderPortfolio/results/risk_model
. - Run the script
notebooks/Portfolio_analysis/get_demonstrate_results.jl
. It will copy the latest 6 results inPortfolio/results/risk_model
tonotebooks/Portfolio_analysis/demonstrate_results folder
for plotting. - Run the notebook
notebooks/Portfolio_analysis/plotting.ipynb
to generate the plot in the paper.
- Download the required support vector machine (SVM) datasets to a new folder
data
by running the filescripts/SVM/SVM_data_download.jl
.
- Run the script
scripts/SVM/SVM_run_tests.jl
. It will preprocess datasets, run the experiments, and save the results as.csv
files under the folderSVM/results/[dataset_name]/IPPMM
. - Run the script
scripts/SVM/SVM_collect_results.jl
to collect all the results in the folderSVM/results
and save them as a summary.csv
file under the folderSVM/results/summary
.
- The condition numbers are saved under
notebooks/SVM_analysis/condnum_rank
. - Run the section "Condition Number v.s. Rank" in the notebook
notebooks/SVM_analysis/plotting.ipynb
to generate the plot in the paper.
- Run the section "Time v.s. Rank" in the notebook
notebooks/SVM_analysis/plotting.ipynb
to generate the plot in the paper.