TabDDPM:基于扩散模型的表格数据生成完整指南
【免费下载链接】tab-ddpm[ICML 2023] The official implementation of the paper "TabDDPM: Modelling Tabular Data with Diffusion Models"项目地址: https://gitcode.com/gh_mirrors/ta/tab-ddpm
TabDDPM是Yandex Research开发的创新表格数据生成工具,利用先进的扩散模型技术生成高质量的合成表格数据。该项目在ICML 2023上发表,为数据隐私保护、机器学习训练增强等场景提供了强大的解决方案。
项目核心特性
TabDDPM的核心优势在于其能够处理混合类型的表格数据,包括连续数值特征和分类特征。与传统的生成对抗网络(GAN)相比,扩散模型在训练稳定性和生成质量方面表现更加出色。
该项目的架构设计巧妙地将扩散过程应用于表格数据生成,通过前向加噪和反向去噪的过程,逐步生成与真实数据分布高度相似的合成数据。
环境配置步骤
基础环境要求
- Python 3.8或更高版本
- PyTorch深度学习框架
- Conda环境管理工具
详细安装流程
export REPO_DIR=/path/to/the/code cd $REPO_DIR conda create -n tddpm python=3.9.7 conda activate tddpm pip install torch==1.10.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html pip install -r requirements.txt conda env config vars set PYTHONPATH=${PYTHONPATH}:${REPO_DIR} conda env config vars set PROJECT_DIR=${REPO_DIR} conda deactivate conda activate tddpm数据集准备
项目提供了完整的数据集下载和预处理流程。数据集包含多个真实世界的数据集,涵盖了不同的应用场景和数据类型。
数据加载命令:
conda activate tddpm cd $PROJECT_DIR wget "https://www.dropbox.com/s/rpckvcs3vx7j605/data.tar?dl=0" -O data.tar tar -xvf data.tar项目结构解析
核心代码结构
tab_ddpm/-- 主要实现代码目录tuned_models/-- 评估模型的调优超参数scripts/-- 主要脚本文件夹exp/-- 实验结果和合成数据存储目录
主要脚本功能
scripts/pipeline.py-- 训练、采样和评估TabDDPMscripts/tune_ddpm.py-- 调优TabDDPM的超参数scripts/eval_[catboost|mlp|simple].py-- 使用调优的评估模型或简单模型评估合成数据scripts/eval_seeds.py-- 使用多个采样和评估种子进行评估
配置参数详解
TabDDPM使用TOML格式的配置文件,主要参数包括:
基础配置
seed-- 评估种子(训练时固定为0)parent_dir-- 实验文件夹路径real_data_path-- 真实数据路径model_type-- 近似反向过程的模型类型num_numerical_features-- 数据集中的数值特征数量
模型参数
is_y_cond-- 分类任务为true,回归任务为falsed_in-- 输入维度(脚本会自动计算)num_classes-- 回归任务为0,分类任务为类别数
训练参数
steps-- 训练步数lr-- 学习率weight_decay-- 权重衰减batch_size-- 批量大小
实践操作示例
TabDDPM调优运行
模板和示例(--eval_seeds为可选参数):
python scripts/tune_ddpm.py [ds_name] [train_size] synthetic [catboost|mlp] [exp_name] --eval_seeds python scripts/tune_ddpm.py churn2 6500 synthetic catboost ddpm_tune --eval_seedsTabDDPM管道运行
模板和示例(--train、--sample、--eval为可选参数):
python scripts/pipeline.py --config [path_to_your_config] --train --sample --eval python scripts/pipeline.py --config exp/churn2/ddpm_cb_best/config.toml --train --sample多种子评估运行
模板和示例:
python scripts/eval_seeds.py --config [path_to_your_config] [n_eval_seeds] [ddpm|smote|ctabgan|ctabgan-plus|tvae] synthetic [catboost|mlp] [n_sample_seeds] python scripts/eval_seeds.py --config exp/churn2/ddpm_cb_best/config.toml 10 ddpm synthetic catboost 5基线方法对比
TabDDPM项目提供了多个基线方法的实现,便于进行性能对比:
smote/-- 传统过采样方法CTGAN/-- TVAE官方实现CTAB-GAN/-- CTAB-GAN官方实现CTAB-GAN-Plus/-- CTAB-GAN-Plus官方实现
性能表现分析
在实际测试中,TabDDPM在多个数据集上均表现出色。以churn2数据集为例,运行完整的训练和采样流程大约需要7分钟(使用NVIDIA GeForce RTX 2080 Ti显卡)。
应用场景深度解析
隐私保护数据共享
TabDDPM能够在保护原始数据隐私的前提下,生成可用于公开分享的高质量合成数据集。
机器学习训练增强
通过生成大规模的合成数据,TabDDPM能够显著提升机器学习模型的泛化能力和性能表现。
最佳实践建议
- 数据预处理:确保数据格式正确,数值特征和分类特征划分清晰
- 参数调优:根据具体数据集特性调整模型参数
- 评估验证:使用多个评估种子确保结果的可重复性
技术原理剖析
TabDDPM基于扩散模型的核心思想,通过前向过程逐步向数据添加噪声,然后通过反向过程学习从噪声中恢复原始数据分布。
扩散过程的关键参数:
num_timesteps-- 扩散步数(默认为1000)gaussian_loss_type-- 高斯损失类型(如"mse")scheduler-- 调度器类型(如"cosine")
实验结果分析
所有实验结果和合成数据都存储在exp/[ds_name]/[exp_name]/文件夹中。每个数据集的基准配置位于exp/[ds_name]/config.toml文件中。
通过使用agg_results.ipynb笔记本,可以查看所有数据集和所有方法的结果,并构建自定义的对比表格。
扩展应用探索
除了基础的表格数据生成,TabDDPM的技术架构还可以扩展到:
- 时序数据合成
- 多模态数据生成
- 隐私计算集成
总结与展望
TabDDPM代表了表格数据生成领域的最新进展,其基于扩散模型的方法在生成质量和训练稳定性方面都具有明显优势。随着技术的不断发展,TabDDPM有望在更多复杂的数据场景中发挥重要作用。
【免费下载链接】tab-ddpm[ICML 2023] The official implementation of the paper "TabDDPM: Modelling Tabular Data with Diffusion Models"项目地址: https://gitcode.com/gh_mirrors/ta/tab-ddpm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考