我们已经弄清了合成数据为什么如此有益——它可以填补空白、保护隐私并扩充有限的数据集。现在,让我们开始了解如何实际创建它。我们暂时不会直接涉足复杂的算法。相反,我们将侧重于许多生成技术的核心构思:使用明确的步骤或“模型”来产生人工数据点。数据生成模型不必被看作是复杂的机器学习模型(比如我们之后可能用合成数据训练的那种),而更像一份食谱或一套指令。这份食谱规定了如何构建新的人工数据点。目标是依照这些指令创建数据,使其与我们实际希望或需要的数据类型具有重要的共同特点,尽管它并非采集自真实情况。从根本上说,数据生成模型提供了一种机制,能够根据一些指定的输入或规则系统地产生输出(即我们的合成数据)。对于本章涉及的简单方法,这些“模型”通常分为两大类:统计描述: 我们可以分析现有真实数据(如果可用),或定义所需属性并用统计数据来描述它们。例如,我们可能希望生成与真实客户年龄模式相似的合成客户年龄数据。我们可能会观察到,真实客户年龄常常围绕一个平均值集中,并具有一定的离散度。那么,我们的“模型”就成了由该平均值($ \mu $)和离散度($ \sigma $,标准差)定义的统计分布(比如您可能记得的正态分布,常被称为钟形曲线)。生成数据意味着从这个定义的分布中抽取随机值。该分布本身就是指导创建合理年龄值的模型。明确规则: 有时,我们知道数据必须遵循的特定约束或逻辑。例如,在一个关于在线订单的数据集中,规则可能是“如果country(国家)列是‘Canada’(加拿大),则currency(货币)列必须是‘CAD’”。或者,“用户age(年龄)必须始终是18岁或更大。”一个基于规则的系统使用这些预设条件来生成严格遵守此逻辑的数据点。在这种情况下,这套规则就是生成模型。考虑这个简易流程:digraph G { rankdir=LR; node [shape=box, style=filled, fillcolor="#a5d8ff"]; edge [color="#495057"]; "模型定义\n(规则或统计属性)" -> "生成过程" [label="输入"]; "生成过程" -> "合成数据点" [label="输出"]; }数据生成的一种简明视图:一个明确定义的模型或一套规则引导一个过程,从而产生合成数据。无论我们使用统计属性还是明确规则,其核心构思都是一样的:我们需要一个蓝图来引导人工数据的创建。这个“模型”或步骤是我们从需要合成数据到实际产生数据的工具。在接下来的章节中,我们将了解如何使用统计分布和简易的基于规则的方法来实现这些初步构思,从而生成初级数值和分类数据。