一、背景


        在AI领域流传着一句话,那就是“数据决定上限”。这里的上限,指的是模型训练效果的上限。可以说,一个模型训练得好不好,数据至关重要。而如何选择和处理数据,变成了一个很重要的议题。本文就将探讨数据的选择和处理事宜。


二、数据选择


        在拿到一份数据后,我们通常直接进行数据处理,但一个隐含的问题在于,我们怎么知道这份数据有没有问题、有哪些问题呢?数据可能本身具有标注错误、数据重复(多个相同或相似数据)、不均衡、空值/缺失、噪声(无关字符、乱码、HTML标签、拼写错误)等问题,跳过数据质量的评估而直接进行预处理和模型训练,无异于在沙地上建造高楼,模型性能的上限从开始就被锁死了。
        因此,在数据选择阶段,我们的核心任务是 “数据健康检查” ,即通过系统性的方法对数据集进行“体检”,量化其质量,识别其“病灶”。

1. 建立数据质量的“体检标准”

首先,我们需要明确“问题数据”的定义。通常,它们可以分为以下几类:

  • 标注错误(标签噪声): 这是最致命的问题。例如在情感分析中,文本内容充满抱怨却被标记为“正面”;在实体识别中,“北京”被标注为“人名”而非“地名”。

  • 数据不一致: 相同或高度相似的输入内容被赋予了不同的标签,这会让模型感到困惑,无法学到稳定规律。

  • 数据不均衡: 某些类别的样本数量极少,模型会倾向于忽略它们,导致在这些类别上的性能极差。

  • 数据重复: 完全相同的样本多次出现,会人为地夸大模型在训练集上的评估指标,导致其泛化能力下降。

  • 数据缺失: 输入文本或对应标签为空值。

  • 数据噪声: 文本中包含无关字符、乱码、HTML标签、拼写错误等。

2. 实施系统性的“体检”流程

为了发现上述问题,我们需要一个从宏观到微观、从自动到人工的检查流程。

a. 自动化“初筛”

利用简单的代码和统计工具,我们可以快速对数据集有一个整体了解:

  • 基本统计信息: 计算数据集总量、文本平均长度、长度分布等。一个长度为零或超长的样本都可能是异常点。

  • 类别分布分析: 绘制类别分布饼图或柱状图,一眼就能看出是否存在严重的不均衡问题。

  • 重复与缺失值检测: 使用哈希或字符串匹配查找完全重复的样本;检查数据框中是否存在空值。

  • 规则与模式匹配: 使用正则表达式检查是否存在不应出现的URL、邮箱、乱码等。

b. 模型辅助的“深度CT”

自动化检查能发现“硬伤”,但难以发现隐秘的“内伤”(如标注错误)。此时,可以借助模型本身来帮助我们:

  • 交叉验证置信度分析: 用一个轻量级模型(如逻辑回归)在训练集上进行交叉验证。那些在多次验证中始终被模型分错,或模型给出极低预测置信度的样本,极有可能就是标注错误的样本。

  • 嵌入空间一致性检查: 使用Sentence-BERT等工具将文本转化为向量,在向量空间中寻找距离很近但标签却不同的样本对,这些就是潜在的不一致数据。

c. 人工“专家会诊”

这是数据质量评估的“金标准”,不可替代。

  • 随机抽样检查: 从数据集中随机抽取一部分(如1%-2%),由领域专家或资深标注人员进行复核。通过抽样中的错误率,可以 statistically 推断整个数据集的错误率。

  • 聚焦抽样检查: 重点检查通过自动化方法和模型辅助方法筛选出的“高危”样本群。这种方法发现错误的效率远高于纯随机抽样。

3. 出具“体检报告”与决策

完成检查后,我们需要一份清晰的“体检报告”:

  • 数据质量量化指标

    • 标注错误率(估计值): X%

    • 数据重复率: Y%

    • 数据缺失率: Z%

    • 主要类别与最次要类别的样本比例: N : 1

基于这份报告,我们可以做出科学的数据选择决策:

  • 直接使用: 如果所有指标均在可接受范围内,数据质量很高。

  • 清洗后使用: 如果存在可修复的错误(如重复、缺失、部分标注错误),则进入数据处理环节进行修正。

  • 拒绝使用/重新标注: 如果错误率过高、不均衡过于严重,或发现系统性标注错误,这批数据应被退回或进行大规模重新标注。


三、数据处理

当我们通过数据选择阶段,明确了数据集的问题所在后,就进入了至关重要的数据处理环节。其目标是将“带病”或“粗糙”的数据,转化为干净、规整、适合模型学习的“营养餐”。

数据处理通常包括以下几个核心步骤:

1. 数据清洗

这是针对数据中具体错误的修正手术。

  • 处理缺失值: 对于缺失的样本,可选择直接删除、用默认值或上下文件填充(需谨慎)。

  • 处理重复值: 根据任务需求,删除完全重复的样本,或根据需要保留一份。

  • 修正标注错误: 根据数据选择阶段发现的错误清单,对标签进行逐一修正。

  • 清除噪声: 使用正则表达式、文本清洗库去除无关的HTML标签、特殊符号、乱码等。对于拼写错误,可根据语种使用相应的校正工具。

2. 数据增强

当面临数据量不足或类别不均衡问题时,数据增强是创造“新”样本的有效手段。

  • 回译: 将文本翻译为另一种语言再翻译回来,生成语义不变但表述变化的句子。

  • 同义词替换: 使用词典或词嵌入,随机替换文本中的非核心词。

  • 随机插入、删除或交换: 轻微地扰动文本结构,增加模型的鲁棒性。

  • EDA: 简单有效的数据增强技术。

  • 生成式方法: 利用大型语言模型根据原有数据生成符合要求的新样本。

注意: 数据增强应保证不改变原文的语义和标签,且增强后的数据最好能与原始数据混合后重新划分训练/验证集。

3. 数据标准化与格式化

为了让模型更高效地学习,我们需要将数据转换为统一的格式。

  • 文本规范化: 包括统一大小写、将数字转换为字符、统一日期格式等。

  • 格式化: 确保所有数据样本都遵循相同的结构,例如统一的JSON格式,便于程序读取。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐