生成真实的表格数据
使用预训练的基于Transformer的语言模型
我们的GReaT框架利用先进的预训练Transformer语言模型的力量来生成高质量的合成表格数据。通过我们用户友好的API,只需几行代码即可轻松生成新的数据样本。更多详细信息,请参阅我们的出版物。
GReaT安装
GReaT框架可以使用pip轻松安装 - 需要Python版本 >= 3.9:
pip install be-great
GReaT快速入门
在下面的示例中,我们展示了如何使用GReaT方法为加利福尼亚房价数据集生成合成表格数据。
from be_great import GReaT
from sklearn.datasets import fetch_california_housing
data = fetch_california_housing(as_frame=True).frame
model = GReaT(llm='distilgpt2', batch_size=32, epochs=50, fp16=True)
model.fit(data)
synthetic_data = model.sample(n_samples=100)
样本插补
GReaT还提供了一个接口来插补,即填充任意组合的缺失值。这需要一个经过训练的model
,例如使用上面的代码片段获得的模型,以及一个将缺失值设置为NaN的pd.DataFrame
。
以下是一个最小示例:
# test_data: 包含来自分布的样本的pd.DataFrame
# model: 在应该插补的数据分布上训练的GReaT
# 从test_data中随机删除值
import numpy as np
for clm in test_data.columns:
test_data[clm]=test_data[clm].apply(lambda x: (x if np.random.rand() > 0.5 else np.nan))
imputed_data = model.impute(test_data, max_length=200)
GReaT引用
如果您使用GReaT,请链接或引用我们的工作:
@inproceedings{borisov2023language,
title={Language Models are Realistic Tabular Data Generators},
author={Vadim Borisov and Kathrin Sessler and Tobias Leemann and Martin Pawelczyk and Gjergji Kasneci},
booktitle={The Eleventh International Conference on Learning Representations },
year={2023},
url={https://openreview.net/forum?id=cEygmQNOeI}
}
GReaT致谢
我们衷心感谢HuggingFace :hugs: 框架。