我正在寻找一种方法来生成用于异常检测的合成数据。我们有真实的数据,但是想要注入异常来检验模型(实际数据对于将来可能出现的异常来说太有限了)。
我想模拟真实数据的统计特性,如均值、模式、标准差等,以创建合成数据,然后根据合理的极值注入异常(如果我们知道实际数据中每一列的统计特性,那么我们就可以推断出该列的极值可能是什么样子)。
是否有任何Python包根据真实数据中已知的统计属性生成合成数据。我认为这类似于差别隐私,但我们这样做并不是为了保护隐私,也不需要一种过份的方法。
科学知识-学习可以生成合成数据,但它似乎没有一种基于现有真实数据统计属性的方法。
我可以做这样简单的事情:
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图重新创建它,但显然这并不能很好地模拟数据:


发布于 2022-06-12 18:03:34
一个选项是,它包含平滑算法。SMOTE通过在观测数据的基础上插值可信的新数据点,从真实的数据集中生成合成样本。
https://datascience.stackexchange.com/questions/82687
复制相似问题