Skip to content

ASU-CSE598-SC4ML/Secure-MeanShift-Clustering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6021519 · Apr 27, 2021

History

44 Commits
Apr 23, 2021
Apr 26, 2021
Apr 8, 2021
Apr 23, 2021
Apr 25, 2021
Apr 27, 2021
Apr 25, 2021
Apr 23, 2021
Apr 23, 2021
Apr 23, 2021
Apr 23, 2021
Apr 26, 2021

Repository files navigation

Secure MeanShift Algorithm

Implementation of a MPC-based Secure MeanShift Algorithm using Crypten.

Requirement

crypten, scikit-learn, matplotlib

Create Conda Environment

conda create -n crypten python=3.6

pip install crypten

pip install scikit-learn

pip install matplotlib

Disclaimer: Tested on several different Machines.

To Run (adjust settings in run.sh)

conda activate crypten

bash run.sh

Module 1

  1. Generate random centers in a [0, 1], [0, 1] plane, for 4 centers.

  2. Generate random clustered point, using gaussian distribution around each centers, 250 points for each center (marked by different color).

  3. Use scikit-learn to get the ground-truth centroid (marked by X).

Example of Module 1

Module 2

  1. Randomly sample a small set of points as dusts, this step is essential to cut down the polynomial runtime. This would iccur error in the final centroids. According to paper xxx, this approximation is accurate enough with less than 1% error [1].

  2. Calculate the distance between point and dusts. Both are in the form of secret share.

For the explanation for module 3 and 4, please check our report.

Project Presentation Slides

https://docs.google.com/presentation/d/1gPopulOS146C-KavFN8tpSlnDy9QT6ob4QylN7QjYtI/edit?usp=sharing

References

[1] Cheon, Jung Hee, Duhyeong Kim, and Jai Hyun Park. "Towards a practical cluster analysis over encrypted data." International Conference on Selected Areas in Cryptography. Springer, Cham, 2019.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published