/hyperdt

Hyperbolic decision trees

Primary LanguageJupyter NotebookMIT LicenseMIT

hyperDT

Fast hyperboloid decision tree algorithms

This repository contains code for the paper Fast Hyperboloid Decision Tree Algorithms (ICLR 2024), which you can find at one of these links:

Installation:

Local install

To install, run this from your repo directory:

git clone https://github.com/pchlenski/hyperdt
cd hyperdt
pip install -e .

If you are installing with e.g. a conda environment or virtualenv, you can find exact dependencies in requirements.txt. These are installable in the usual way:

pip install -r requirements.txt

Pip install

Additionally, hyperDT is available on PyPI. It can be pip installed as follows:

pip install hyperdt

Tutorial

A basic tutorial demonstrating key HyperDT functionality is available in notebooks/tutorial.ipynb.

Reproducibility and data availability

All figures and tables in the paper were generated using a combination of Python scripts and Jupyter notebooks. The notebooks used in development were filtered down to only those that remained relevant to the final paper and moved to the notebooks/archive directory. The notebooks directory contains a tutorial and symbolic links to notebooks of particular relevance to a figure, table, or section of a paper, named according to the section they reproduce.

hororf_benchmarks.py runs the benchmarks contributing to Tables 1, 5, and 6, and scaling_benchmarks.py runs the benchmarks contributing to Figures 6 and 7.

All relevant datasets, plus benchmarking code outputs, can be found on Google Drive.

Citation

To cite HyperDT, please use the following:

@inproceedings{
    chlenski2024fast,
    title={Fast Hyperboloid Decision Tree Algorithms},
    author={Philippe Chlenski and Ethan Turok and Antonio Khalil Moretti and Itsik Pe'er},
    booktitle={The Twelfth International Conference on Learning Representations},
    year={2024},
    url={https://openreview.net/forum?id=TTonmgTT9X}
}