This repository contains code accompanying the paper Robust, randomized precondinioning for kernel ridge regression. It includes simple implementations of the RPCholesky and KRILL preconditioners and scripts to run all the numerical experiments in the paper.
Warning: the instructions assume that your current working directory is the base of this repository.
Consider creating a virtual enviroment for this project. For example, by running:
$ python -m venv .venv
$ source .venv/bin/activate
Then, install the requirements:
$ pip install -r requirements.txt
To download the data for the performance plots run:
$ cd utils
$ python download_data.py
Note that this will download and decompress several files and might take a while. All files will be saved in the data
directory.
In order to run the experiments you will need access to MATLAB. All the experiment scripts are in the experiments
folders. After running the figures are saved in the results
folder.
Script | Figures in the paper |
exact_performance_test.m | 1 and 2 |
approximate_performance_test.m | 3 and 4 |
homo_restricted_subsampled_full.m | 5 |
test_exact.m | 6 |
rpc_convergence_with_varying_rank.m | 7 |
susy_10k_centers.m | 8 |
lines_crossing.m | 9 |
If you want to cite our work we recommend the following bibtex entry.
@article{diaz2023robust,
title={Robust, randomized preconditioning for kernel ridge regression},
author={D{\'\i}az, Mateo and Epperly, Ethan N and Frangella, Zachary and Tropp, Joel A and Webber, Robert J},
journal={arXiv preprint arXiv:2304.12465},
year={2023}
}