特征工程是从原始数据中选择、转换和创建特征(输入变量)以提高机器学习(ML)模型性能的关键过程。与其说它是一门严格的科学,不如说它是一门艺术,通常需要领域专业知识、直觉和实验。输入模型的特征的质量直接影响其学习模式和进行准确预测的能力,因此特征工程是成功的机器学习项目的基石。更好的特征可以使模型更简单、训练时间更快、准确性更高。
什么是功能工程?
特征工程的核心是将原始数据(通常是杂乱无章的数据)转化为算法能够理解并有效学习的结构化格式。这涉及到对数据、问题背景和所选 ML 模型的理解。我们的目标是制作出信息量大、具有区分度和独立性的输入特征,突出与预测任务相关的基本模式。这一过程在原始数据收集和模型训练之间架起了一座桥梁,对机器学习管道的结果产生了重大影响。
关键技术
特征工程中采用了多种技术,这些技术通常结合使用:
- 功能创建:通过组合或转换现有特征生成新特征。例如,创建交互项(如两个变量相乘)、多项式特征或推导出特定领域的指标(如金融领域的债务收入比)。
- 特征转换:修改现有特征,以满足模型假设或提高性能。常见的方法包括缩放(如归一化)、倾斜数据的对数变换或将连续变量分门别类。在计算机视觉(CV)中,数据增强(Data Augmentation)等技术也可视为一种应用于图像数据的特征转换形式。
- 特征提取:从原始特征集合中创建更小的、信息量更大的新特征集合,通常用于降维。主成分分析 (PCA)等技术就属于这一类。虽然与特征选择相关,但抽取创建的是新特征,而选择则是从现有特征中挑选出一个子集。
- 特征选择:从原始数据集中识别并选择最相关的特征,剔除不相关或多余的特征。这有助于降低模型的复杂性,防止过度拟合,并提高计算效率。方法包括从简单的相关分析到更复杂的包装和嵌入方法。
真实案例
特征工程在各种人工智能应用中无处不在:
- 预测性维护:要预测设备故障,原始传感器数据(温度、振动、压力)可能是嘈杂的高维数据。特征工程可以创建滚动平均值、时间窗口的标准偏差、振动数据的频率成分(使用傅立叶变换)或上次维护事件后的时间等特征。这些工程特征可为故障预测模型提供更清晰的信号。这对于制造领域的人工智能至关重要。
- 自然语言处理(NLP):对于情感分析等任务,需要对原始文本进行转换。特征工程可能包括创建TF(词频-反向文档频率)向量、字数、n-grams(词序列)、可读性评分,或提取特定的语言特征(如正/反义词的使用)。虽然现代转换器模型能自动学习表征,但明确的特征工程仍能提高性能,尤其是在较小的数据集或专门任务中。
功能工程和Ultralytics
Ultralytics YOLO 等高级模型通过其深度神经网络架构(骨干、颈部、头部)自动学习相关的视觉特征,在物体检测和图像分割等任务中表现出色,但特征工程原理仍然适用。例如,在将输入图像输入YOLO 模型之前对其进行预处理(如针对不同光照进行直方图均衡化、降噪),就是一种可以提高鲁棒性的特征工程。此外,YOLO 的输出(如边界框坐标、对象类别、计数)可被设计为下游任务的特征,或与其他数据源相结合,进行更复杂的分析。查看Ultralytics 文档,了解有关模型使用和定制的更多信息。