641666/privelet-differential-privacy
GitHub: 641666/privelet-differential-privacy
基于 Haar 小波变换和 Laplace 噪声的一维差分隐私直方图发布算法的 Python 实现,用于探索隐私预算与数据效用之间的权衡。
Stars: 0 | Forks: 0
# privelet-differential-privacy
Privelet 方法用于差分隐私直方图发布的 Python 实现,使用 Haar 小波变换和 Laplace 噪声来研究隐私与效用之间的权衡。
## 项目描述
本项目在直方图数据上实现了用于差分隐私的一维 Privelet 算法。
本项目使用的数据集是来自 Adult 数据集的 `adult.data`。
目标查询是教育水平的直方图(H1)。
项目包括:
- 一维 Haar 小波变换的实现
- 向小波系数添加 Laplace 噪声
- 噪声直方图的重建
- 使用 Wasserstein 距离进行评估
- 探索更多的 epsilon 值
## 环境要求
本项目使用 Python 3.12.7
所需库:
- numpy
- pandas
- matplotlib
- scipy
- notebook
## 安装
使用以下命令安装所需的库:
```
pip install numpy
pip install pandas
pip install matplotlib
pip install scipy
pip install notebook
```
## 数据集
本项目使用文件 adult.data。
在运行 notebook 之前,请将此文件放置在 data/ 文件夹中。
预期路径:
data/adult.data
## 项目结构
```
project/
├─ data/
│ └─ adult.data
├─ notebook/
│ └─ privelet_experiment.ipynb
└─ README.md
```
## 主要函数
1. wavelet_transform(hist)
将原始直方图转换为 Haar 小波系数。
2. add_laplace_noise(coeffs, epsilon, random_state=None)
根据隐私预算 epsilon 向小波系数添加 Laplace 噪声。
3. inverse_wavelet_transform(coeffs)
从小波系数重建直方图。
4. privelet_1d(hist, epsilon, random_state=None)
运行完整的 1D Privelet 流水线:原始直方图 -> 小波变换 -> 含噪系数 -> 逆变换 -> 含噪直方图
## 主要特性
- 从 Adult 数据集的 education 属性构建直方图
- 实现一维 Haar 小波变换和逆变换
- 在不同 ε 值下向小波系数添加 Laplace 噪声
- 重建含噪直方图
- 使用 Wasserstein 距离评估效用损失
- 比较多次随机运行中的隐私与效用权衡
## 结果
实验表明,较小的 ε 值提供更强的隐私保护,但会引入更大的误差。
随着 ε 的增加,含噪直方图变得更接近原始直方图,Wasserstein 距离也随之减小。
## 作者
Siying Liu
标签:Adult数据集, Haar Wavelet, Matplotlib, NoSQL, Numpy, Privelet, Python, Scipy, Wasserstein距离, 代码示例, 哈尔小波变换, 差分隐私, 拉普拉斯噪声, 数据分析, 数据脱敏, 数据隐私, 无后门, 直方图发布, 网络安全, 逆向工具, 隐私与效用权衡, 隐私保护