Skip to content

bryce-shang/privacy-preserving-xgboost-inference

 
 

Repository files navigation

Privacy-Preserving XGBoost Inference

Description

This repo is a prototype implementation of privacy-preserving XGBoost (https://xgboost.readthedocs.io/en/latest/). We adopt several property-preserving encryption schemes to encrypt the XGBoost model so that the privacy-preserving model can predict an encrypted query.

An extended abstract of this work (https://arxiv.org/abs/2011.04789) appears in Privacy-preserving Machine Learning Workshop at NeurIPS 2020.

Development

pip install pytest

When run the test files, first in the repo directory.

  • pip3 install -r requirements.txt

Go to the test directory ('cd test'), run the following:

  • python -m pytest

The OPE scheme is from the open source (https://github.com/tonyo/pyope). It implements the OPE scheme by Boldyreva et. al. The source code is place in the 'third-party/ope/' directory. We also leverage the partially homomorphic encryption scheme (Paillier Cryptosystem: https://en.wikipedia.org/wiki/Paillier_cryptosystem), run pip install phe to install this.

See DEVELOPMENT.md

Security

See CONTRIBUTING for more information.

License

This project is licensed under the Apache-2.0 License.

About

Privacy-preserving XGBoost Inference

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 60.5%
  • Jupyter Notebook 39.5%