Skip to main content

TabularBench: Adversarial robustness benchmark for tabular data

Project description

TabularBench

TabularBench: Adversarial robustness benchmark for tabular data

Leaderboard: https://serval-uni-lu.github.io/tabularbench/

Research papers:

Installation

Using Docker (recommended)

  1. Clone the repository

  2. Build the Docker image

    ./tasks/docker_build.sh
    
  3. Run the Docker container

    ./tasks/run_benchmark.sh
    

Note: The ./tasks/run_benchmark.sh script mounts the current directory to the /workspace directory in the Docker container. This allows you to edit the code on your host machine and run the code in the Docker container without rebuilding.

With Pyenv and Poetry

  1. Clone the repository

  2. Create a virtual environment using Pyenv with Python 3.8.10.

  3. Install the dependencies using Poetry.

   poetry install

Using conda

  1. Clone the repository

  2. Create a virtual environment using Conda with Python 3.8.10.

    conda create -n tabularbench python=3.8.10
    
  3. Activate the conda environment.

    conda activate tabularbench
    
  4. Install the dependencies using Pip.

    pip install -r requirements.txt
    

How to use

Run the benchmark

You can run the benchmark with the following command:

python -m tasks.run_benchmark

or with Docker:

docker_run_benchmark

Using the API

You can also use the API to run the benchmark. See tasks/run_benchmark.py for an example.

clean_acc, robust_acc = benchmark(
    dataset="URL",
    model="STG_Default",
    distance="L2",
    constraints=True,
)

Retrain the models

We provide the models and parameters used in the paper. You can retrain the models with the following command:

python -m tasks.train_model

Edit the tasks/train_model.py file to change the model, dataset, and training method.

Data availability

Datasets, pretrained models, and synthetic data are publicly available here. The folder structure on the Shared folder should be followed locally to ensure the code runs correctly.

Datasets: Datasets are downloaded automatically in data/datasets when used.

Models: Pretrained models are available in the folder data/models.

Model parameters: Optimal parameters (from hyperparameters search) are required to train models and are in data/model_parameters.

Synthetic data: The synthetic data generated by GANs is available in the folder data/synthetic.

Naming

For technical reasons, the names of datasets, models, and training methods are different from the paper. The mapping can be found in docs/naming.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tabularbench-0.1.0.tar.gz (95.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tabularbench-0.1.0-py3-none-any.whl (136.4 kB view details)

Uploaded Python 3

File details

Details for the file tabularbench-0.1.0.tar.gz.

File metadata

  • Download URL: tabularbench-0.1.0.tar.gz
  • Upload date:
  • Size: 95.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.8.10 Darwin/23.5.0

File hashes

Hashes for tabularbench-0.1.0.tar.gz
Algorithm Hash digest
SHA256 64216226df1c1fbe502f76bf9f9e6fb8cf06d16cdc71bd63ae32c469ab343091
MD5 308955c8d34f00021b135431dba703b3
BLAKE2b-256 f2a8e4ec309fd4a0f6a564d9c24316377496585c2f99a17429299ee61ef1bbfd

See more details on using hashes here.

File details

Details for the file tabularbench-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: tabularbench-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 136.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.8.10 Darwin/23.5.0

File hashes

Hashes for tabularbench-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5244d2de59336ebf5636c85e51b28506859f11065c29c3c921420b989ef66b7d
MD5 5f33da19a10307cbb951ac6e8c201403
BLAKE2b-256 4d4d12cd8c9855d6052425790ad177f2a5501eadc6611682ecc87e4a41798352

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page