Skip to content

Latest commit

 

History

History
60 lines (39 loc) · 3.09 KB

README.md

File metadata and controls

60 lines (39 loc) · 3.09 KB

Reducing Certified Regression to Certified Classification

docs docs

This repository contains the source code for reproducing the results in the paper "Reducing Certified Regression to Certified Classification for General Poisoning Attacks".

Running the Program

To run the program, enter the src directory and call:

python driver.py ConfigFile

where ConfigFile is one of the yaml configuration files in folder src/configs.

  • To disable weighted mode, run the program with the flag --no_multi
  • To disable overlapping mode, run the program with the flag --deg 1
  • To override threshold $\xi$, run the program with the flag --dist c where $\xi = c$. For the datasets ames_housing, austin_housing, and diamonds, c is denotes a percentage of true target value $y_{\text{te}}$. For datasets weather and life, c is a simple scalar.

First Time Running the Program

The first time each configuration runs, the program automatically downloads any necessary dataset(s). Please note that this process can be time-consuming -- in particular for the weather dataset.

These downloaded files are stored in a folder .data that is in the same directory as driver.py. If the program crashes while running a configuration for the first time, we recommend deleting or moving the .data to allow the program to re-download and reinitialize the source data.

Gurobi License

By default, this program loads gurobipy, Gurobi's python package. For non-trivial linear programs, gurobipy requires a license. Academic users can request free, unlimited licenses directly from Gurobi.

Requirements

Our implementation was tested in Python 3.7.1. For the full requirements, see requirements.txt in the src directory. If a different version of Python is used, some package settings in requirements.txt may need to change.

We recommend running our program in a virtual environment. Once your virtual environment is created and active, run the following in the src directory:

pip install --user --upgrade pip
pip install -r requirements.txt

License

MIT

Citation

@inproceedings{Hammoudeh:2023:CertifiedRegression,
    author = {Hammoudeh, Zayd and
              Lowd, Daniel},
    title     = {Reducing Certified Regression to Certified Classification for General Poisoning Attacks},
    booktitle = {Proceedings of the 1st {IEEE} Conference on Secure and Trustworthy Machine Learning},
    series    = {{SaTML}'23},
    year      = {2023},
}