Appearance
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 用于处理超大规模数据集。