Skip to content

alexbie98/1pub-priv-mean-est

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Private mean estimation with 1 public sample

A proof-of-concept numerical simulation demonstrating the effectiveness of 1 public sample in private mean estimation.

This code is referenced in our NeurIPS 2022 paper:

Private Estimation with Public Data by Alex Bie*, Gautam Kamath*, Vikrant Singhal* (*alphabetical order).

Running the code

Tested on Python 3.10.6.

  • Install required packages: pip install -r requirements.txt
  • Reproduce the figures in the paper: python run.py
  • Figures will be dumped into ./plots/*.png

Results

Targeting zCDP at ρ = 0.5, we examine the effect of 1 public sample on CoinPress (an existing private mean estimator) on n samples from N(k * [1,...,1]T, Id), d = 50. We use R = k*sqrt(d) as the a priori upper bound on the mean for CoinPress.

Left to Right: k = 10, k = 100, k = 1000. We see that 1 public sample significantly improves results when the a priori bound on the mean is weak (k is large).

Left to Right: k = 100 (zoomed-in), k = 1000 (zoomed-in).

Acknowledgements

This code makes heavy use of the original authors' implementation of CoinPress.

See their paper for more details about CoinPress:

CoinPress: Practical Private Mean and Covariance Estimation by Sourav Biswas, Yihe Dong, Gautam Kamath, Jonathan Ullman.

About

Private mean estimation with 1 public sample

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages