https://github.com/xtra-computing/simfl
Practical Federated Gradient Boosting Decision Trees (AAAI 2020)
https://github.com/xtra-computing/simfl
Last synced: 10 months ago
JSON representation
Practical Federated Gradient Boosting Decision Trees (AAAI 2020)
- Host: GitHub
- URL: https://github.com/xtra-computing/simfl
- Owner: Xtra-Computing
- Created: 2020-12-07T06:00:17.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2023-05-10T15:13:14.000Z (almost 3 years ago)
- Last Synced: 2025-03-27T08:22:29.948Z (11 months ago)
- Language: C++
- Homepage:
- Size: 401 KB
- Stars: 18
- Watchers: 3
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
This is the code of paper [Practical Federated Gradient Boosting Decision Trees](https://arxiv.org/pdf/1911.04206.pdf). The implementation is based on a previous version of [ThunderGBM](https://github.com/Xtra-Computing/thundergbm.git). Only Linux-based operating systems are supported.
# Installation
## Prerequisites
* CMake
* CUDA
## Build
```
git submodule init
git submodule update
mkdir build
cd build
cmake ..
make -j
```
# Usage
SimFL currently only works for binary classification tasks with labels 0 and 1 and requires GPUs.
## Parameteres
```
* -p: int, number of parties (default:2)
* -t: int, number of lsh tables (default:40)
* -b: int, number of buckets (default:500)
* -r: float, r value of LSH function (default:4.0)
* -s: int, init seed for LSH
* -f: string, path to the dataset file
* -d: int, the maximum dimension of the datasets
```
## Datasets
Please rename all the local datasets in such format: name+'_train'+party_id, e.g., `a9a_train0`, `a9a_train1`. For the test dataset, please rename it in such format: name+'_test', e.g., `a9a_test`.
## Sample command:
Under `build` directory
```
./src/test/thundergbm-test -p 2 -t 30 -b 500 -r 4 -s -1 -f ../dataset/a9a/a9a -d 123 -n 50 -e 8
```