Repository of differentially-private methods for learning from features.
Project description
Description
Repository of differentially-private methods for learning from features.
Usage
Installation
pip install dp-learning-ff
Private Prototype Calculation
- Set your total privacy budget in (0,rho)-zCDP.
- Divide your total budget into a budget per step. Good starting values are listed below. The algorithm will perform
len(Ps)
many steps.
Ps = [rho] # One iteration
Ps = [5 / 64 * rho, 7 / 64 * rho, 52 / 64 * rho] # Three iterations
- Call the private prototype calculation using your
train_preds
,train_targets
andPs
as outlined above.
num_samples = 100
dimensionality = 10
num_classes = 5
train_preds = np.random.normal(0,1,(num_samples, dimensionality))
train_targets = np.random.randint(num_classes, size=(num_samples)) # Supports unbalanced classes
private_prototypes = dp_learning_ff.give_private_prototypes(train_preds, train_targets, Ps)
>>> private_prototypes.shape
(5, 10)
>>> private_prototypes
array([[-1.08239659, 0.50517265, 0.46295668, 0.11665974, -0.41539363,
0.46428818, -0.30204127, -0.20684517, -0.11748276, -0.44173581],
[-0.97640077, 0.73495051, -0.3125302 , 0.39733846, -0.15187237,
-0.09618042, 0.50008494, 0.06408969, -0.59472233, 0.56000984],
[-0.07384877, -0.04661516, 0.83469973, -0.18854654, -0.3631222 ,
-0.56158617, 0.03480437, -0.17749153, -0.25144926, 0.99669163],
[ 0.02682651, -0.57948712, -0.33462215, 0.32657359, -0.13894844,
-1.16420508, 0.84630674, -0.0343235 , -0.38193481, 0.29124748],
[ 1.12158357, 0.17188541, -0.2582887 , -0.2140504 , 0.06759121,
-0.26975582, -0.46858189, 0.67295234, 0.64183255, -0.10445519]])
Acknowledgements
Prototype Calculations use the coinpress algorithm from the paper CoinPress: Practical Private Mean and Covariance Estimation, authored by Sourav Biswas, Yihe Dong, Gautam Kamath, Jonathan Ullman. Code contributed by all four authors.
@incollection{BiswasDKU20,
title = {CoinPress: Practical Private Mean and Covariance Estimation},
author = {Biswas, Sourav and Dong, Yihe and Kamath, Gautam and Ullman, Jonathan},
booktitle = {Advances in Neural Information Processing Systems 33},
url = {arXiv preprint arXiv:2006.06618},
year = {2020}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dp_learning_ff-0.0.8.tar.gz
(21.6 kB
view details)
Built Distribution
File details
Details for the file dp_learning_ff-0.0.8.tar.gz
.
File metadata
- Download URL: dp_learning_ff-0.0.8.tar.gz
- Upload date:
- Size: 21.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9227883b44a60df96ebbe17f366e7f99f0a6d68cdc2e5ed0381061d5eb846063 |
|
MD5 | 5ff66d0817b69d20c52641e8e8c76e5e |
|
BLAKE2b-256 | fd9c926192f38fd50ddd355c62de52f375b6b347fc6ad68b5ec9ec16ca1cf3bd |
File details
Details for the file dp_learning_ff-0.0.8-py3-none-any.whl
.
File metadata
- Download URL: dp_learning_ff-0.0.8-py3-none-any.whl
- Upload date:
- Size: 22.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d94ce0861f79a492fc450446cce40ad6b099bb4c2cc6e23f4192e4f71523e3b |
|
MD5 | b031fef77e6dccbae39e988103fca387 |
|
BLAKE2b-256 | 11ba8a08a3b52e6a42faf7bd353f6329111dc5b8f43435f6b15cf2d40d3e9bd8 |