/TREANT

C++ implementation of the TREANT algorithm for robust tree training.

Primary LanguageC++

Treant: Training Evasion-Aware Decision Trees

This is a fork of the repository TreeAnt a C++ implementation of the TREANT algorithm proposed by Calzavara et. al. in their research paper titled Treant: training evasion-aware decision trees.

To compile TREANT the project folder must include a folder named 3rdparty with the required third party libraries: (see FindNlopt.cmake).

├── 3rdparty
│   └── nlopt-*
│       ├── include
│       └── lib

The nlopt is a library used to solve the optimization problem. Follow the guide at: https://nlopt.readthedocs.io/en/latest/NLopt_Installation/ install in local folder using:

cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=$HOME/install ..

(see "Changing the installation directory" chapter). After:

make install

the installation folder will contain the include and lib folder. Tested using static libraries: add -DBUILD_SHARED_LIBS=OFF to cmake flags.

Credits

If you use this implementation in your work, please add a reference/citation to our paper. You can use the following BibTeX entry:

@article{DBLP:journals/datamine/CalzavaraLTAO20,
  author       = {Stefano Calzavara and
                  Claudio Lucchese and
                  Gabriele Tolomei and
                  Seyum Assefa Abebe and
                  Salvatore Orlando},
  title        = {Treant: training evasion-aware decision trees},
  journal      = {Data Min. Knowl. Discov.},
  volume       = {34},
  number       = {5},
  pages        = {1390--1420},
  year         = {2020},
  url          = {https://doi.org/10.1007/s10618-020-00694-9},
  doi          = {10.1007/S10618-020-00694-9},
  timestamp    = {Tue, 13 Jul 2021 13:27:03 +0200},
  biburl       = {https://dblp.org/rec/journals/datamine/CalzavaraLTAO20.bib},
  bibsource    = {dblp computer science bibliography, https://dblp.org}
}