This is the code of paper Privacy-Preserving Gradient Boosting Decision Trees, a joint work with Zhaomin Wu, Zeyi Wen, and Bingsheng He. The implementation is based on LightGBM.
Instructions to run DPBoost:
cd python-package
python3 setup.py install --user
cd ..
python3 run_exp.py
In function try_DPBoost_2level
of run_exp.py:
output_path: The output file path.
n_trees: Number of trees.
total_budgets: The privacy budget
inner_boost_round: Number of trees inside an ensemble.
-
Since we directly implement the code based on LightGBM, it may overwrite the vanilla LightGBM of your python library.
-
Currently the code only supports setting
objective
asregression
(use square loss function). For the binary classification task, we convert it to the regression task (e.g., for class in [-1,1], the output class is 0 if the prediction score is bigger than 0).
Please contact me by email liqinbin1998@gmail.com or create issues if you have any question.