Skip to main content

HyperFast : Instant Classification for Tabular Data

HyperFast is a hypernetwork designed for fast classification of tabular data, capable of scaling to large datasets. Utilizing a meta-trained hypernetwork, HyperFast generates a dataset-specific target network in a single forward pass, eliminating the need for time-consuming model training.

Installation

HyperFast can be installed from PyPI using

pip install hyperfast

This package contains example code to run HyperFast. Ensure that you are using Python 3.9 or later to run this project. When using HyperFast for the first time, the model weights will be downloaded automatically. The model weights are also available here.

Usage

Here's a quick example on how to use HyperFast's scikit-learn-like interface:

import torch
import numpy as np
from hyperfast import HyperFastClassifier
from sklearn.metrics import accuracy_score

# Load your dataset
X_train, y_train = np.load("data/hapmap1_X_train.npy"), np.load( "data/hapmap1_y_train.npy")
X_test, y_test = np.load("data/hapmap1_X_test.npy"), np.load("data/hapmap1_y_test.npy")

# Set the device
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')

# Initialize HyperFast
model = HyperFastClassifier(device=device)

# Generate a target network and make predictions
model.fit(X_train, y_train)
predictions = model.predict(X_test)

accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")

Warning:

  • Set cat_features as the list of indices of the categorical features in the dataset (if any), now in __init__.
  • The current default hyperparameters provide medium speed-accuracy performance.
  • :rocket: For the fastest inference (but less accurate) set n_ensemble=1 and optimization=None.
  • :bar_chart: If you are dealing with an imbalanced dataset, consider setting stratify_sampling=True with n_ensemble > 1.
  • :globe_with_meridians: If you are dealing with a very high-dimensional dataset (e.g., >3000 features), consider setting feature_bagging=True with n_ensemble > 1.
  • :ok_hand: For slower but most accurate predictions, optimize the inference parameters of HyperFast for each dataset. In this case, we recommend the following search space:
param_grid = {
    'n_ensemble': [1, 4, 8, 16, 32],
    'batch_size': [1024, 2048],
    'nn_bias': [True, False],
    'stratify_sampling': [True, False],
    'optimization': [None, 'optimize', 'ensemble_optimize'],
    'optimize_steps': [1, 4, 8, 16, 32, 64, 128],
    'seed': list(range(10))
}

License

This project is under the CC BY-NC 4.0 license. See LICENSE for details.

Cite us

If you use HyperFast in your research, please cite our paper:

@inproceedings{bonet2024hyperfast,
  title={HyperFast: Instant Classification for Tabular Data},
  author={Bonet, David and Montserrat, Daniel Mas and Gir{\'o}-i-Nieto, Xavier and Ioannidis, Alexander},
  booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
  year={2024}
}

Release files for hyperfast 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hyperfast 1.0.6
File Size Uploaded
hyperfast-1.0.6.tar.gz 230.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hyperfast 1.0.6
File Interpreter ABI Platform
hyperfast-1.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 249.8 kB

Release files / hyperfast-1.0.6.tar.gz

Download URL hyperfast-1.0.6.tar.gz
Size 230.2 kB
Tags Source
SHA-256 checksum
How to use checksums
05be2ac8f9ca56c5a32a3e23d2c99d2ed7cf5780fb722056d2448033ae24fdcb
BLAKE2b-256 checksum
How to use checksums
3bdc56c5f8ec623c24e55127b4ff6a9dca2dfe5e035dcc9b5442b0f849687d6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.1

Release files / hyperfast-1.0.6-py3-none-any.whl

Download URL hyperfast-1.0.6-py3-none-any.whl
Size 19.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aedd552bb6c98ed71673418f959a2850e5cec64ba8e647fb049195fd9e9518af
BLAKE2b-256 checksum
How to use checksums
2919fff9dbb6b9078f4f0343e3e4940d1bd812131f4d7b70b7a3d62ad16367c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.1

Release history Release notifications | RSS feed

This release

1.0.6 This release

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.0

2 release files

0.1.3

1 release file

0.1.2

1 release file

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page