特征工程可将原始数据预处理为机器可读的格式。通过转换并选择相关特征,它可优化 ML 模型性能。
特征工程是将原始数据转换为相关信息,以供机器学习模型使用的过程。换句话说,特征工程就是创建预测模型特征的过程。特征(也称为维度)是用于生成模型预测的输入变量。由于模型性能在很大程度上取决于训练期间使用的数据质量,因此特征工程是一种关键预处理技术,需要为考虑的预测任务和模型类型选择原始训练数据中最相关的方面。1
在继续之前,先简单了解一下术语。许多资料交替使用特征工程和特征提取来表示创建模型变量的过程。2资料有时还使用特征提取指代将原始特征空间重新映射到低维特征空间。3相比之下,特征选择是一种降维形式。具体来说,它是选择变量子集以创建新模型的过程,目的是减少多重共线性,从而最大限度地提高模型的泛化性和优化性。
由于模型的好坏取决于其所基于的数据,因此数据科学家花费大量时间进行数据准备和特征创建,以创建高质量模型。根据原始数据的复杂程度和所需预测模型的不同,特征工程可能需要大量的反复试验。
一些资料和在线教程将特征工程划分为不同的步骤,这些步骤的数量和名称通常各不相同。这些步骤可以包括特征理解、结构化或构建、转换、评估、优化等等。4虽然这种分层有助于概述特征工程涉及的任务,但它表明特征工程是一个线性过程。实际上,特征工程是一个迭代过程。
特征工程取决于具体情境。它需要大量的数据分析和领域知识。其中的原因在于,特征的有效编码可由所用的模型类型、预测变量与输出之间的关系以及模型要解决的问题来确定。5在此基础上,辅以不同类型的数据集(例如文本与图像)则可能更适合不同的特征工程技术。6因此,要具体说明如何在给定的机器学习算法中最好地实施特征工程可能并非易事。
尽管没有普遍首选的特征工程方法或管道,但有一些常见任务用于从不同的数据类型为不同的模型创建特征。但是,在实施这些技术中的任何一个之前,必须记住进行彻底的数据分析,以确定解决给定问题的相关特征和适当数量的特征。此外,最好实施各种数据清理和预处理技术,例如缺失数据或缺失值的插补,同时解决可能对模型预测产生负面影响的异常值。
特征转换是将一种特征类型转换为特定模型的另一种更具可读性的形式的过程。这包括将连续数据转换为分类数据,反之亦然。
分箱。此技术实质上是将连续数值转换为分类特征。具体来说,分箱将每个值与其周围的值邻域进行比较,然后将数据点分类到多个分箱中。分箱的一个基本示例是年龄人口统计,其中连续年龄按年龄组划分,例如 18-25、25-30,以此类推。将值放入分箱后,可以通过均值、中位数或边界进一步平滑分箱。平滑分箱用分箱衍生的值替换分箱包含的值。例如,如果我们用均值对包含年龄值 18-25 的分箱进行平滑处理,我们可以用该分箱值的均值替换该分箱中的每个值。分箱可根据连续值创建分类值。平滑分箱是一种局部平滑形式,旨在减少输入数据中的噪声。7
独热编码。这是分箱的逆过程;它从分类变量创建数值特征。独热编码将类别特征映射到二进制表示,用于在矩阵或向量空间中映射特征。文献通常将这种二进制表示称为虚拟变量。由于独热编码忽略顺序,因此它最适合用于名义类别。词袋模型是自然语言处理任务中经常使用的独热编码的一个示例。独热编码的另一个示例是垃圾邮件过滤分类,其中垃圾邮件和非垃圾邮件类别分别转换为 1 和 0。8
特征提取是一种通过将变量组合成新的代理变量,或为了减小模型特征空间的维度,为模型创建新的维度空间的技术。9相比之下,特征选择是指选择最相关特征子集来表示模型的技术。特征提取和选择都是降维的形式,因此适用于具有大量特征和有限可用数据样本的回归问题。
主成分分析。主成分分析 (PCA) 是一种常见的特征提取方法,它可组合和转换数据集的原始特征以生成新特征(即,主成分)。PCA 会从模型中选择一部分变量,而这些变量会共同构成模型的原始变量集中所存在的大多数方差或所有方差。然后,PCA 会将数据投影到由这些变量所定义的新空间中。10
线性判别分析。线性判别分析 (LDA) 表面上类似于 PCA,因为它会将模型数据投射到一个新的低维空间中。与 PCA 一样,该模型空间的维度(或特征)也源自初始模型的特征。但 LDA 与 PCA 的不同之处在于它会注意保留原始数据集中的分类标签。PCA 会生成旨在最大化数据方差的新的成分变量,而 LDA 则会生成主要用于最大化这些数据中的类差异的成分变量。11
某些特征具有数据固有的上限和下限,会限制可能的特征值,例如时间序列数据或年龄。但多数情况下,模型特征对可能值可能没有限制,而大型特征缩放范围(特征最低值和最高值之间的差异)可能会对某些模型产生负面影响。特征缩放(有时称为特征归一化)是一种标准化技术,用于重新缩放特征并限制大型缩放范围对模型的影响。12 特征转换将数据从一种类型转换为另一种类型,而特征缩放在范围和分布方面转换数据,同时保持其原始数据类型。13
最小值-最大值缩放。最小值-最大值缩放重新缩放给定特征的所有值,以使它们介于指定的最小值和最大值之间,通常为 0 和 1。所选特征的每个数据点的值(用 x 表示)分别根据确定的最小特征值和最大特征值 Min(x) 和 max(x) 计算,从而产生该数据点的新特征值(用 x̃ 表示)。最小值-最大值缩放使用以下公式计算: 14
Z 分数缩放。文献也将其称为标准化和方差缩放。“最小值-最大值缩放”可对特征值进行缩放以落入指定的最小值与最大值范围内,而“Z 分数缩放”则会对特征进行重新缩放,以使其共同采用标准差 1 和平均值 0。Z 分数缩放可由以下公式表示:
此时,给定的特征值 (x) 会根据重新缩放后的特征的平均值进行计算,并除以标准化后的标准偏差(以 sqrt(var(x)) 表示)。在实现 PCA 和 LDA 等特征提取方法时,Z 分数缩放可能很有用,因为这两种方法要求特征采用相同的比例。15
自动化。无可否认,自动化特征工程几十年来一直是一个持续的研究领域。16 “tsflex”和“featuretools”等 Python 库有助于自动提取和转换时间序列数据的特征。开发人员继续提供新的软件包和算法,以自动执行线性回归模型和其他数据类型的特征工程,从而提高模型的准确性。17 最近,自动化特征工程已成为构建自动化机器学习 (AutoML) 系统的大规模工作的一部分,该系统旨在让非专家也能更轻松地使用机器学习。18
深度学习。特征工程可能是一个费力且耗时的过程,需要大量的反复试验。深度学习允许用户指定一小部分基本特征,神经网络架构将这些特征汇总成更高级别的特征,也称为表示。19 其中一个示例是计算机视觉图像处理和模式识别,其中模型学习通过串联特征图,使用简单的概念(例如边缘、轮廓等)识别具有语义意义的物体(例如汽车、人等)。20 但是,最近的研究已将特征工程与神经网络和其他深度学习技术分类任务相结合,例如欺诈检测,取得了令人欣喜的结果。21
使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。
借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。
通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。
1 Alice Zheng 和 Amanda Casari,《机器学习特征工程》,O'Reilly,2018 年。Sinan Ozdemir 和 Divya Susarla,《Feature Engineering Made Easy》,Packt,2018 年。
2 Yoav Goldberg,《自然语言处理的神经网络方法》,Springer,2022 年。
3 Suhang Wang、Jiliang Tang 和 Huan Liu,“Feature Selection”,《Encyclopedia of Machine Learning and Data Mining》,Springer,2017 年。
4 Sinan Ozdemir,《Feature Engineering Bookcamp》,Manning Publications,2022 年。Sinan Ozdemir 和 Divya Susarla,《Feature Engineering Made Easy》,Packt,2018 年。
5 Max Kuhn 和 Kjell Johnson,《应用预测建模》,Springer,2016 年。
6 Alice Zheng 和 Amanda Casari,《机器学习特征工程》,O'Reilly,2018 年。
7 Jaiwei Han,《数据挖掘:概念与技术》,第 3 版,2012 年。
8 Kevin Murphy,《Machine Learning: A Probabilistic Perspective》,MIT Press,2012 年。Soledad Galli,《Python Feature Engineering Cookbook》,第 2 版,Packt,2022 年。
9 Max Kuhn 和 Kjell Johnson,《应用预测建模》,Springer,2016 年。
10 I.T. Jollife,《主成分分析》,Springer,2002 年。
11 Chris Albon,《Machine Learning with Python Cookbook》,O’Reilly,2018 年。
12 Alice Zheng 和 Amanda Casari,《机器学习特征工程》,O'Reilly,2018 年。
13 Zahraa Abdallah、Lan Du 和 Geoffrey Webb,“Data preparation”,《Encyclopedia of Machine Learning and Data Mining》,Springer,2017 年。
14 Alice Zheng 和 Amanda Casari,《机器学习特征工程》,O'Reilly,2018 年。
15 Zahraa Abdallah、Lan Du 和 Geoffrey Webb,“Data preparation”,《Encyclopedia of Machine Learning and Data Mining》,Springer,2017 年。Alice Zheng 和 Amanda Casari,《机器学习特征工程》,O'Reilly,2018 年。
16 James Kanter 和 Kalyan Veeramachaneni,“深度特征综合:迈向数据科学自动化”,IEEE 数据科学与高级分析国际会议,2015 年,https://ieeexplore.ieee.org/document/7344858。
17 Udayan Khurana、Deepak Turaga、Horst Samulowitz 和 Srinivasan Parthasrathy,“Cognito: Automated Feature Engineering for Supervised Learning”,IEEE 第 16 届数据挖掘研讨会国际会议,2016 年,第 1304-1307 页, https://ieeexplore.ieee.org/abstract/document/7836821。Franziska Horn、Robert Pack 和 Michael Rieger,“The autofeat Python Library for Automated Feature Engineering and Selection”,机器学习和数据库知识发现欧洲联合会议,2019 年,第 111-120 页,https://link.springer.com/chapter/10.1007/978-3-030-43823-4_10。
18 Ahmad Alsharef、Karan Aggarwal、Sonia、Manoj Kumar 和 Ashutosh Mishra,“Review of ML and AutoML Solutions to Forecast Time‑Series Data”,《Archives of Computational Methods in Engineering》,第 29 卷,2022 年,第 5297-5311 页,https://link.springer.com/article/10.1007/s11831-022-09765-0。Sjoerd Boeschoten、Cagatay Catal、Bedir Tekinerdogan、Arjen Lommen 和 Marco Blokland,“The automation of the development of classification models andimprovement of model quality using feature engineering techniques”,《Expert Systems with Applications》,第 213 卷,2023 年,https://www.sciencedirect.com/science/article/pii/S0957417422019303。Shubhra Kanti Karmaker、Mahadi Hassan、Micah Smith、Lei Xu、Chengxiang Zhai 和 Kalyan Veeramachaneni,“AutoML to Date and Beyond: Challenges and Opportunities”,《ACM Computing Surveys》,第 54 卷,第 8 期,2022 年,第 1-36 页,https://dl.acm.org/doi/abs/10.1145/3470918。
19 Yoav Goldberg,《自然语言处理的神经网络方法》,Springer,2022 年。
20 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville,《深度学习》,MIT Press,2016 年,https://www.deeplearningbook.org/
21 Xinwei Zhang、Yaoci Han、Wei Xu 和 Qili Wang,“HOBA: A novel feature engineering methodology for credit card fraud detection with a deep learning architecture”,《Information Sciences》第 557 卷,2021 年,第 302-316 页,https://www.sciencedirect.com/science/article/abs/pii/S002002551930427X。Daniel Gibert、Jordi Planes、Carles Mateu 和 Quan Le,“Fusing feature engineering and deep learning: A case study for malware classification”,《Expert Systems with Applications》,第 207 卷,2022 年,https://www.sciencedirect.com/science/article/pii/S0957417422011927。 Ebenezerm Esenogho、Ibomoiye Domor Mienye、Theo Swart、Kehinde Aruleba 和 George Obaido,“A Neural Network Ensemble With Feature Engineering for Improved Credit Card Fraud Detection”,《IEEE Access》,第 10 卷,2020 年,第 16400-16407 页,https://ieeexplore.ieee.org/abstract/document/9698195。