Skip to content

AI 数据预处理

数据的重要性

数据是人工智能的基础。机器学习模型的性能很大程度上取决于训练数据的质量和数量。业界有句话说"数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限"。因此,数据预处理是整个 AI 项目中最关键的环节之一。

数据预处理的流程

一个典型的数据预处理流程包括以下步骤:

1. 数据收集

从数据库、日志、传感器、公开数据集等多种来源收集原始数据。

2. 数据清洗

处理数据中的各种质量问题:

  • 缺失值处理:删除缺失样本、填充均值/中位数、使用模型预测填充等。
  • 异常值处理:识别并处理明显偏离正常范围的数据点。
  • 重复值处理:去除重复样本,避免训练偏差。
  • 噪声处理:过滤错误或无关的数据。

3. 数据转换

将数据转换为适合模型训练的形式:

  • 标准化(Standardization):将数据转换为均值为 0、标准差为 1 的分布。
  • 归一化(Normalization):将数据缩放到 [0, 1] 或 [-1, 1] 区间。
  • 编码:将类别特征转换为数值,如独热编码(One-Hot Encoding)。
  • 文本向量化:将文本转换为向量,如词袋模型、TF-IDF、词嵌入等。

4. 特征工程

从原始数据中构造更有用的特征:

  • 特征选择:筛选出对目标最有预测能力的特征。
  • 特征提取:从原始特征中构造新特征,如 PCA 降维。
  • 特征组合:组合多个特征生成新的交互特征。

数据集划分

通常将数据集划分为三个部分:

数据集用途常见比例
训练集训练模型参数60%–80%
验证集调优超参数、选择模型10%–20%
测试集评估最终模型性能10%–20%

划分时要注意保持数据分布的一致性,分类任务中常采用分层抽样(Stratified Sampling)来保证每个类别在各数据集中的比例一致。

数据增强

数据增强通过对现有数据进行变换(如旋转、裁剪、翻转图像,或同义词替换文本)来扩充数据集,是缓解数据不足、防止过拟合的有效手段,在计算机视觉和自然语言处理中被广泛使用。

常见的数据处理工具

  • Python 生态:Pandas(数据处理)、NumPy(数值计算)、Scikit-learn(预处理与特征工程)。
  • 深度学习框架:PyTorch 的 DataLoader、TensorFlow 的 tf.data 提供了高效的数据加载与预处理流水线。
  • 大数据工具:Spark、Dask 用于处理超大规模数据集。

分享人工智能、机器学习与大模型的学习笔记