数据增强和数据预处理是机器学习流程中不同的步骤,每个步骤都有不同的目的。 数据预处理 侧重于准备原始数据以用于训练模型,确保一致性和与算法的兼容性。 另一方面,数据增强 是一种通过创建现有数据的修改版本来人为扩展数据集的技术,通常是为了提高模型的泛化能力。 虽然预处理是一个普遍应用的基础步骤,但增强是一种可选策略,通常在数据稀缺或不平衡时使用。
数据预处理 涉及将原始数据清洗、归一化和转换为结构化格式。 例如,在图像处理中,这可能包括将图像调整为统一分辨率,将像素值归一化为 0-1 范围,或将文本数据转换为数值标记。 预处理确保输入数据符合模型架构的要求。 对于表格数据,这可能意味着通过插补(例如,用平均值填充)处理缺失值,或使用 one-hot 编码对分类变量进行编码。 如果没有预处理,模型可能会因不一致的尺度、缺失值或不兼容的格式而难以处理,从而导致性能不佳或训练错误。 预处理通常是在训练开始前应用的一次性步骤。
数据增强 在预处理之后应用,在计算机视觉或自然语言处理 (NLP) 等领域最为常见。 例如,在图像分类中,旋转、翻转、裁剪或调整亮度等增强技术会从现有图像创建新的训练样本。 在 NLP 中,同义词替换或句子释义可能会生成文本数据的变体。 这些修改通过将模型暴露于各种场景,而无需收集新数据,从而帮助模型更好地泛化。 与预处理不同,增强通常在训练期间动态应用(例如,使用 TensorFlow 的 ImageDataGenerator
等库实时进行)。 它对于小型数据集特别有用,因为它通过模拟真实世界的变化来减少过度拟合。
关键区别在于它们的目标:预处理确保数据的可用性,而 增强增强数据的多样性。 预处理是强制性的且与模型无关(例如,所有神经网络都需要归一化的输入),而增强是可选的且特定于任务的(例如,如果数字对旋转敏感,则翻转图像对于数字识别没有用处)。 例如,在医学成像项目中,预处理可能会标准化图像大小并归一化像素强度,而增强可能会模拟光照变化或略微旋转,以考虑不同的扫描角度。 这两个步骤是互补的,但在机器学习工作流程中扮演着不同的角色。