Metadata-Version: 2.4
Name: privacy-tuner
Version: 0.1.0
Summary: A privacy-preserving data publishing tool with parameter optimization
Home-page: https://github.com/yourusername/privacy_tuner
Author: Your Name
Author-email: your.email@example.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.20.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: scikit-learn>=1.0.0
Requires-Dist: scipy>=1.7.0
Requires-Dist: matplotlib>=3.4.0
Requires-Dist: seaborn>=0.11.0
Requires-Dist: scikit-optimize>=0.9.0
Requires-Dist: copulas>=0.9.0
Requires-Dist: tqdm>=4.64.0
Requires-Dist: jinja2>=3.0.0
Requires-Dist: diffprivlib>=0.6.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Privacy Tuner

Privacy Tuner 是一个通用的隐私保护数据发布工具。它通过智能参数搜索，在用户指定的隐私预算和效用目标约束下，自动寻找最优的数据扰动参数，从而在保护隐私的同时最大化数据的实用性。最终输出净化后的数据集、最优参数组合以及可视化报告。

## 特性

- **模块化设计**：支持可插拔的隐私机制、风险度量、效用评估和优化器。
- **多种隐私模型**：差分隐私（拉普拉斯、高斯）、经验风险、k-匿名等（持续扩展）。
- **多种数据类型**：表格数据原生支持，预留文本、图像接口。
- **自动参数搜索**：内置网格搜索、贝叶斯优化、遗传算法，自动寻找最优参数。
- **可解释性**：生成风险-效用曲线和自然语言报告，帮助理解参数选择。

## 安装

1. 克隆仓库：
   ```bash
   git clone https://github.com/yourusername/privacy_tuner.git
   cd privacy_tuner
   ```

2. 创建虚拟环境（推荐）：
   ```bash
   python -m venv venv
   source venv/bin/activate  # Linux/Mac
   venv\Scripts\activate     # Windows
   ```

3. 安装依赖：
   ```bash
   pip install -r requirements.txt
   ```

4. （可选）安装为开发模式：
   ```bash
   pip install -e .
   ```

## 快速开始

下面是一个使用 Adult 数据集的完整示例：

```python
import numpy as np
from sklearn.datasets import fetch_openml
from privacy_tuner.input import CSVLoader
from privacy_tuner.core.mechanisms import CopulaMechanism
from privacy_tuner.core.risk import EmpiricalRiskMeter
from privacy_tuner.core.utility import TSTRClassifier
from privacy_tuner.core.optimizers import GridSearchOptimizer
from privacy_tuner.output import CSVExporter, SimpleReporter

# 加载数据
adult = fetch_openml(data_id=1590, as_frame=True)
df = adult.data.select_dtypes(include=[np.number]).dropna()
y = (adult.target == '>50K').astype(int).values
data = np.column_stack([df.values, y])

# 设置组件
mechanism = CopulaMechanism()
risk_meter = EmpiricalRiskMeter()
utility = TSTRClassifier(target_column=-1)
optimizer = GridSearchOptimizer()

# 定义参数空间和风险约束
param_space = {
    'sampling_ratio': [0.5, 1.0, 2.0],
    'noise_scale': [0.0, 0.1, 0.5]
}
risk_constraint = (0.0, 1.0)

# 执行搜索
best_params, best_utility, best_risk = optimizer.search(
    original_data=data,
    mechanism=mechanism,
    risk_meter=risk_meter,
    utility_evaluator=utility,
    param_space=param_space,
    risk_constraint=risk_constraint
)

print(f"最优参数: {best_params}")
print(f"效用: {best_utility:.4f}, 风险: {best_risk:.4f}")
```

更多示例请参考 `examples/` 目录。

## 核心模块

- **输入层**：`DataLoader`, `FeatureAnalyzer`
- **隐私机制**：`PrivacyMechanism`（实现：`CopulaMechanism`, `LaplaceMechanism`, `GaussianMechanism`）
- **风险度量**：`RiskMeter`（实现：`EmpiricalRiskMeter`, `DPRisk`）
- **效用评估**：`UtilityEvaluator`（实现：`TSTRClassifier`, `QueryError`, `ClusteringSilhouette`）
- **优化器**：`Optimizer`（实现：`GridSearchOptimizer`, `BayesianOptimizer`, `GeneticOptimizer`）
- **输出层**：`CSVExporter`, `SimpleReporter`

## 文档

详细开发者文档请见 [docs/developer_guide.md](privacy_tuner/developer_guide.md)。

## 贡献

欢迎贡献代码、报告问题或提出建议。请阅读 [CONTRIBUTING.md](CONTRIBUTING.md)（如有）了解详情。

## 许可证

MIT
```
