术语表

数据预处理

掌握机器学习的数据预处理。学习清理、缩放和编码等技术,以提高模型的准确性和性能。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

数据预处理是指在将原始数据输入机器学习(ML)模型之前,将其清理、转换和整理成合适格式的关键步骤。从现实世界中收集到的原始数据通常不完整、不一致、包含错误或噪音。预处理旨在解决这些问题,显著提高数据质量,进而提高在此基础上训练的 ML 模型的性能、准确性和可靠性。预处理是任何数据驱动项目的基础阶段,包括人工智能(AI)计算机视觉(CV)项目。

数据预处理为何重要?

机器学习模型从数据中学习模式。如果数据有缺陷,模型就会学习到不正确的模式,导致预测和决策失误。高质量、准备充分的数据对于建立强大的模型至关重要,例如 Ultralytics YOLO这样的强大模型是必不可少。有效的数据预处理有助于

  • 提高模型精度:干净的数据能带来更精确的模型。
  • 缩短训练时间:删除无关或冗余数据可加快训练过程。
  • 避免错误:处理不一致性可防止模型学习到虚假的相关性。
  • 增强泛化能力:适当预处理数据有助于模型在未见过的数据上表现更佳,减少过度拟合

常用数据预处理技术

在数据预处理过程中,通常会采用几种技术:

  • 数据清洗:这包括识别和处理数据集中的错误、不一致、缺失值(估算)和异常值。它可确保数据的准确性和一致性。
  • 数据转换:这包括以下技术
    • 归一化/缩放:调整数值特征的范围或分布(例如,将图像中的像素值从 0-255 调整为 0-1)。这样可以确保数值较大的特征不会对模型产生过大的影响。
    • 编码分类变量:使用单次编码等方法,将非数字数据(如类别或标签)转换为模型可以理解的数字格式。
  • 特色工程:从现有特征中创建新的、信息量可能更大的特征,以提高模型性能。
  • 特征提取:从原始数据中自动提取新的低维特征,通常用于图像处理。
  • 降维:在保留重要信息的同时减少输入特征的数量,从而简化模型并降低计算成本。主成分分析(PCA)等技术很常见。
  • 图像预处理:具体到计算机视觉,这包括调整图像大小至统一尺寸、转换色彩空间(如将 RGB 转换为灰度),以及应用滤波器进行降噪。您可以在Ultralytics 的注释数据预处理指南中找到更多详细信息。

实际应用

  1. 自动驾驶汽车的计算机视觉:来自摄像头的图像数据需要进行大量预处理。这包括调整图像大小、归一化像素强度、校正镜头畸变,以及应用随机旋转或亮度调整等数据增强技术,使物体检测模型能够适应各种条件。Ultralytics HUB等平台可帮助管理这些数据集
  2. 制造业的预测性维护:来自机械的传感器数据(温度、振动、压力)通常会产生噪声,并可能包含缺失读数。预处理包括通过过滤噪声来清理这些数据,使用统计方法对缺失值进行估算,并在将传感器读数输入 ML 模型以预测设备故障之前对其进行归一化处理,如《制造业中的人工智能》一书中所述。

数据预处理与相关概念

  • 数据清理与数据预处理数据清理是数据预处理的一个子集,特别侧重于处理错误、缺失值和不一致性。数据预处理的范围更广,包括清理、转换和特征处理。
  • 数据标签与数据预处理:数据标注是指在原始数据中添加信息标签或注释(如用于物体检测的边界框),为监督学习提供基本事实。这通常发生在数据预处理之前,而数据预处理则是为模型训练准备标注数据。更多详情,请参阅数据收集和注释指南
  • 数据扩增与数据预处理:数据扩增通过创建现有数据的修改副本(如翻转图像、添加噪音),人为增加训练数据集的大小和多样性。虽然与预处理步骤密切相关,而且经常与预处理步骤一起使用,但其主要目的是提高模型的泛化能力,而不仅仅是清理或格式化数据。探索通常涉及增强的模型训练技巧

工具和资源

各种库和工具为数据预处理提供了便利:

  • Pandas用于数据处理和分析的流行Python 库,是清理和转换表格数据的绝佳工具。
  • Scikit-learn:提供多种预处理工具,包括缩放器、编码器和估算方法。 preprocessing 模块。
  • OpenCV:计算机视觉任务的关键库,提供广泛的图像预处理功能。
  • NumPy:Python 数值计算的基础软件包,通常用于预处理过程中的数组操作。
  • Ultralytics 文档:提供与YOLO 模型数据处理相关的指南和示例。

总之,数据预处理是机器学习工作流程中不可或缺的一步,它能确保数据处于模型训练的最佳状态,从而产生更可靠、更准确的人工智能系统。

阅读全部