OpenMined/PyDP
GitHub: OpenMined/PyDP
基于 Google 差分隐私库的 Python 封装,提供 ε-差分隐私算法以安全计算敏感数据的汇总统计量。
Stars: 543 | Forks: 142



# PyDP
在当今的数据驱动世界中,越来越多的研究人员和数据科学家使用机器学习来创建更好的模型或更具创新性的解决方案,以创造更美好的未来。
这些模型通常倾向于处理敏感或个人数据,这可能会导致隐私问题。例如,某些 AI 模型可能会记住有关其训练数据的细节,并可能在稍后泄露这些细节。
为了帮助衡量敏感数据泄露并降低其发生的可能性,存在一种称为差分隐私的数学框架。
2020 年,OpenMined 为 Google 的[差分隐私](https://github.com/google/differential-privacy)项目创建了一个名为 PyDP 的 Python 封装库。
该库提供了一组 ε-差分隐私算法,可用于对包含私人或敏感信息的数值数据集生成汇总统计数据。因此,使用 PyDP,您可以控制用 Python 编写的模型的隐私保证和准确性。
**关于 PyDP 需要记住的事情:**
- :rocket: 具有差分隐私算法特性,包括:BoundedMean、BoundedSum、Max、Count Above、Percentile、Min、Median 等。
- 上述所有计算方法仅使用 Laplace 噪声(其他噪声机制将很快添加!:smiley:)
- :fire: 兼容所有三种类型的操作系统 - Linux、macOS 和 Windows :smiley:
- :star: 使用 Python 3.x。
## 安装
要安装 PyDP,请使用 [PyPI](https://pip.pypa.io/en/stable/) 包管理器:
```
pip install python-dp
```
(如果您有单独用于 Python 3.x 的 `pip3`,请使用 `pip3 install python-dp`。)
## 示例
请参阅教程和示例代码的[精选列表](https://github.com/OpenMined/PyDP/tree/dev/examples),以了解有关 PyDP 库的更多信息。
您也可以从 [PyDP 简介](https://github.com/OpenMined/PyDP/blob/dev/examples/Tutorial_1-carrots_demo/carrots_demo.ipynb)(一个 Jupyter notebook)和 [胡萝卜演示](https://github.com/OpenMined/PyDP/blob/dev/examples/Tutorial_1-carrots_demo/carrots.py)(一个 Python 文件)开始。
示例:计算 Bounded Mean
```
# 导入 PyDP
import pydp as dp
# 导入 Bounded Mean 算法
from pydp.algorithms.laplacian import BoundedMean
# 计算 Bounded Mean
# 基本结构:`BoundedMean(epsilon: float, lower_bound: Union[int, float, None], upper_bound: Union[int, float, None])`
# `epsilon`:一个 Double 值,介于 0 和 1 之间,表示隐私阈值,
# 衡量可接受的隐私损失(0 表示不接受任何损失)
x = BoundedMean(epsilon=0.6, lower_bound=1, upper_bound=10)
# 如果未指定上下界,
# PyDP 会自动计算这些边界
# x = BoundedMean(epsilon: float)
x = BoundedMean(0.6)
# 计算结果
# 当前支持的数据类型为 integers 和 floats
# 未来版本将支持更多数据类型
# (参考 https://github.com/OpenMined/PyDP/blob/dev/examples/carrots.py)
x.quick_result(input_data: list)
```
## 学习资源
前往[资源](https://github.com/OpenMined/PyDP/blob/dev/resources.md)以了解有关差分隐私的更多信息。
## 攻击模型
请参阅底层 Google 差分隐私库的[攻击模型](https://github.com/google/differential-privacy/blob/main/common_docs/attack_model.md),以了解有关我们安全使用 PyDP 的假设和要求的更多信息。
## 许可证
[Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/)
标签:Differential Privacy, Epsilon-DP, OpenMined, PyDP, Python, 人工智能安全, 代码示例, 合规性, 密码学, 密钥泄露防护, 差分隐私, 开源库, 手动系统调用, 抗成员推理, 拉普拉斯噪声, 搜索引擎爬虫, 数据分析, 数据聚合, 数据脱敏, 无后门, 机器学习安全, 统计披露控制, 网络安全, 联邦学习, 逆向工具, 隐私保护, 隐私计算