如何使用通过原始数据集学习的机器学习模型生成合成数据集?

数据挖掘 机器学习 数据集
2021-09-19 23:40:17

通常,机器学习模型是建立在数据集上的。我想知道是否有任何方法可以使用这种经过训练的机器学习模型来生成合成数据集,并保留原始数据集的特征?

[原始数据-->建立机器学习模型-->使用ml模型生成合成数据....!!!]

是否可以?如果可能,请向我指出相关资源。

3个回答

一般的方法是对您的数据集进行传统的统计分析,以定义一个多维随机过程,该过程将生成具有相同统计特征的数据。这种方法的优点是您的合成数据独立于您的 ML 模型,但在统计上与您的数据“接近”。(见下文讨论您的替代方案)

本质上,您正在估计与该过程相关的多元概率分布。估计分布后,您可以通过蒙特卡罗方法或类似的重复抽样方法生成合成数据。如果您的数据类似于某些参数分布(例如对数正态分布),那么这种方法简单且可靠。棘手的部分是估计变量之间的依赖关系。见:https ://www.encyclopediaofmath.org/index.php/Multi-dimensional_statistical_analysis 。

如果您的数据不规则,则非参数方法更容易并且可能更稳健。 多变量核密度估计是一种易于使用且对具有 ML 背景的人有吸引力的方法。有关特定方法的一般介绍和链接,请参阅:https ://en.wikipedia.org/wiki/Nonparametric_statistics 。

为了验证此过程是否适合您,您需要再次使用合成数据完成机器学习过程,您最终应该得到一个与原始模型相当接近的模型。同样,如果您将合成数据放入您的 ML 模型中,您应该得到与原始输出具有相似分布的输出。

相反,您提出的是:

[原始数据-->建立机器学习模型-->使用ml模型生成合成数据....!!!]

这完成了与我刚才描述的方法不同的事情。这将解决逆问题:“什么输入可以生成任何给定的模型输出集”。除非您的 ML 模型过度拟合原始数据,否则此合成数据在各个方面都不会看起来像您的原始数据,甚至在大多数方面都不会。

考虑一个线性回归模型。相同的线性回归模型可以与具有非常不同特征的数据具有相同的拟合。一个著名的证明是通过Anscombe 的四重奏

使用简单的汇总统计检查时,所有四个集合都是相同的,但在绘制图表时差异很大

以为我没有参考资料,我相信这个问题也可能出现在逻辑回归、广义线性模型、SVM 和 K-means 聚类中。

有一些 ML 模型类型(例如决策树)可以将它们反转以生成合成数据,尽管这需要一些工作。请参阅:生成合成数据以匹配数据挖掘模式

有一种非常常见的方法来处理不平衡的数据集,称为 SMOTE,它从少数类生成合成样本。它的工作原理是使用与其邻居的差异(乘以 0 到 1 之间的某个随机数)来扰乱少数样本

这是原始论文的引述:

合成样本按以下方式生成:取所考虑的特征向量(样本)与其最近邻之间的差异。将此差异乘以 0 和 1 之间的随机数,并将其添加到所考虑的特征向量中。

您可以在此处找到更多信息

数据增强是基于现有数据综合创建样本的过程。现有数据会受到轻微干扰,以生成保留许多原始数据属性的新数据。例如,如果数据是图像。图像像素可以交换。可以在此处找到许多数据增强技术的示例。