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/activateThen, install the requirements:
$ pip install -r requirements.txtTo download the data for the performance plots run:
$ cd utils
$ python download_data.pyNote 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}
}