首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据现有真实数据生成合成数据(用Python)

根据现有真实数据生成合成数据(用Python)
EN

Data Science用户
提问于 2020-10-07 13:20:03
回答 1查看 559关注 0票数 1

我正在寻找一种方法来生成用于异常检测的合成数据。我们有真实的数据,但是想要注入异常来检验模型(实际数据对于将来可能出现的异常来说太有限了)。

我想模拟真实数据的统计特性,如均值、模式、标准差等,以创建合成数据,然后根据合理的极值注入异常(如果我们知道实际数据中每一列的统计特性,那么我们就可以推断出该列的极值可能是什么样子)。

是否有任何Python包根据真实数据中已知的统计属性生成合成数据。我认为这类似于差别隐私,但我们这样做并不是为了保护隐私,也不需要一种过份的方法。

科学知识-学习可以生成合成数据,但它似乎没有一种基于现有真实数据统计属性的方法。

我可以做这样简单的事情:

代码语言:javascript
复制
res = {}
for column in df: 
    nrows = len(df[column].index)
    mean = df[column].mean()
    std = df[column].std()
    mu, sigma = mean, std # mean and standard deviation
    synthetic_data = np.random.normal(mu, sigma, nrows)
    res[column] = synthetic_data

...which只检测每一列的均值和标准差,然后使用正态分布(大假设)的numpy图重新创建它,但显然这并不能很好地模拟数据:

实数据

综合数据

EN

回答 1

Data Science用户

发布于 2022-06-12 18:03:34

一个选项是,它包含平滑算法。SMOTE通过在观测数据的基础上插值可信的新数据点,从真实的数据集中生成合成样本。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/82687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档