Random Forests in MPyC
An implementation of machine learning on secure data. We allow a model to be trained and used on data that is kept private. We use the MPyC library to perform a secure multi-party computation (MPC) that trains a forest of decision trees using an algorithm that is similar to the C4.5 machine learning algorithm.
Install Python 3.7, then invoke:
pip install -r requirements.txt
python spect.py python balance.py
Please keep in mind that these computations are much slower than their non-MPC counterparts.
Run the test by invoking:
Run tests in watch mode:
-c flag causes the screen to be cleared before each run.)
pip install snakeviz python -m cProfile -o spect.stats spect.py snakeviz spect.stats
This algorithm was developed as part of the SODA project. Many thanks to Mark Abspoel, Daniel Escudero and Nikolaj Volgushev for designing the decision tree algorithm for MPC (See chapter 6 of this SODA document). Many thanks to Berry Schoenmakers who developed MPyC and helped us throughout the implementation of this algorithm.