机器学习特征工程

2025年6月17日 | 阅读7分钟

特征工程是机器学习的预处理步骤,用于将原始数据转换为可用于使用机器学习或统计建模创建预测模型的特征。机器学习中的特征工程旨在提高模型的性能。在本主题中,我们将详细了解机器学习中的特征工程。但在深入细节之前,让我们先了解一下什么是特征?以及特征工程的必要性?

Feature Engineering for Machine Learning

什么是特征?

通常,所有机器学习算法都接受输入数据以生成输出。输入数据保持表格形式,包含行(实例或观测值)和列(变量或属性),这些属性通常被称为特征。例如,图像在计算机视觉中是一个实例,而图像中的一条线可能是一个特征。同样,在 NLP 中,文档可以是一个观测值,词数可以是一个特征。因此,我们可以说特征是影响问题或对问题有用的属性

什么是特征工程?

特征工程是机器学习的预处理步骤,它从原始数据中提取特征。它有助于更好地将底层问题表示给预测模型,从而提高模型在未见过数据上的准确性。预测模型包含预测变量和结果变量,而特征工程过程则为模型选择最有用的预测变量。

Feature Engineering for Machine Learning

自 2016 年以来,自动化特征工程也被用于不同的机器学习软件中,有助于自动从原始数据中提取特征。机器学习中的特征工程主要包含四个过程:特征创建、转换、特征提取和特征选择。

这些过程描述如下

  1. 特征创建:特征创建是为预测模型找到最有用的变量。这是一个主观的过程,需要人类的创造力和干预。通过将现有特征进行加、减、除等运算来创建新特征,这些新特征具有很大的灵活性。
  2. 转换:特征工程的转换步骤涉及调整预测变量以提高模型的准确性和性能。例如,它确保模型能够灵活地接受各种输入数据;它确保所有变量都在相同的尺度上,从而使模型更容易理解。它提高了模型的准确性,并确保所有特征都在可接受的范围内,以避免任何计算错误。
  3. 特征提取:特征提取是一个自动化的特征工程过程,它通过从原始数据中提取来生成新变量。此步骤的主要目的是减少数据量,以便轻松地使用和管理数据进行数据建模。特征提取方法包括聚类分析、文本分析、边缘检测算法和主成分分析 (PCA)
  4. 特征选择:在开发机器学习模型时,数据集中只有少数变量对构建模型有用,而其余特征要么是冗余的,要么是不相关的。如果我们输入包含所有这些冗余和不相关特征的数据集,它可能会对模型的整体性能和准确性产生负面影响并降低其性能。因此,借助机器学习中的特征选择来识别和选择数据中最相关的特征并移除不相关或不太重要的特征非常重要。“特征选择是通过移除冗余、不相关或噪声特征,从原始特征集中选择最相关特征子集的一种方法。”

以下是使用特征选择进行机器学习的一些好处

  • 有助于避免维度灾难。
  • 有助于简化模型,以便研究人员可以轻松解释它。
  • 减少训练时间。
  • 减少过拟合,从而增强泛化能力。

机器学习中特征工程的必要性

在机器学习中,模型的性能取决于数据预处理和数据处理。但如果我们不进行预处理或数据处理就创建模型,那么它可能无法获得良好的准确性。而如果我们对同一模型应用特征工程,那么模型的准确性就会提高。因此,机器学习中的特征工程可以提高模型的性能。以下几点解释了特征工程的必要性

  • 更好的特征意味着灵活性。
    在机器学习中,我们总是尝试选择最佳模型来获得良好的结果。然而,有时即使选择了错误的模型,我们仍然可以获得更好的预测,这是因为特征更好。特征的灵活性将使您能够选择不太复杂的模型。因为不太复杂的模型运行速度更快,更容易理解和维护,这总是可取的。
  • 更好的特征意味着更简单的模型。
    如果我们向模型输入精心设计的特征,那么即使选择了错误的参数(不那么优化),我们也可以获得良好的结果。进行特征工程后,不必费力去选择具有最优化参数的正确模型。如果我们拥有良好的特征,我们可以更好地表示完整的数据并利用它来最好地表征给定问题。
  • 更好的特征意味着更好的结果。
    如前所述,在机器学习中,我们提供什么样的数据就会得到什么样的输出。因此,为了获得更好的结果,我们必须使用更好的特征。

特征工程的步骤

特征工程的步骤可能因不同的数据科学家和 ML 工程师而异。然而,大多数机器学习算法都包含一些通用步骤,这些步骤如下

  • 数据准备:第一步是数据准备。在此步骤中,从不同资源获取的原始数据将被准备成合适的格式,以便在 ML 模型中使用。数据准备可能包括数据清理、交付、数据增强、融合、摄取或加载。
  • 探索性分析:探索性分析或探索性数据分析 (EDA) 是特征工程的一个重要步骤,主要由数据科学家使用。此步骤涉及分析、检查数据集并总结数据的主要特征。使用不同的数据可视化技术来更好地理解数据源的操作,找到最合适的数据分析统计技术,并为数据选择最佳特征。
  • 基准测试:基准测试是一个为准确性设定标准基线的过程,用于与该基线的​​所有变量进行比较。基准测试过程用于提高模型的预测能力并降低错误率。

特征工程技术

一些流行的特征工程技术包括

1. 插补

特征工程处理不当数据、缺失值、人为干预、一般错误、数据源不足等问题。数据集中缺失的值会严重影响算法的性能,为了处理它们,可以使用“插补”技术。插补负责处理数据集中的不规则性。

例如,通过缺失值比例很大的方式移除完整行或完整列中的缺失值。但同时,为了保持数据量,需要插补缺失数据,这可以通过以下方式完成

  • 对于数值数据插补,可以在列中插补一个默认值,并用列的均值或中位数填充缺失值。
  • 对于分类数据插补,可以将缺失值替换为列中出现次数最多的值。

2. 处理异常值

异常值是偏离其他数据点的、离群太远的数据值或数据点,以至于它们严重影响模型的性能。可以使用此特征工程技术来处理异常值。此技术首先识别异常值,然后将其移除。

标准差可用于识别异常值。例如,空间内的每个值都有一个到平均距离的确定距离,但如果一个值比某个特定值更远,则可将其视为异常值。Z-score 也可用于检测异常值。

3. 对数变换

对数变换或 log transform 是机器学习中常用的数学技术之一。Log transform 有助于处理偏斜数据,并使变换后的分布更接近正态分布。它还可以减少异常值对数据的影响,因为由于幅度差异的归一化,模型会变得更加健壮。

注意:Log transform 仅适用于正值;否则会报错。为避免这种情况,可以在变换前向数据加 1,以确保变换为正值。

4. 分箱

在机器学习中,过拟合是影响模型性能的主要问题之一,这是由于参数过多和数据噪声造成的。然而,特征工程的一种流行技术“分箱”可用于归一化噪声数据。此过程涉及将不同的特征分段到不同的箱中。

5. 特征拆分

顾名思义,特征拆分是将特征精细地分成两部分或更多部分,并进行处理以创建新特征。这项技术有助于算法更好地理解和学习数据集中的模式。

特征拆分过程使得新特征能够被聚类和分箱,从而提取有用的信息并提高数据模型的性能。

6. One-hot 编码

One-hot 编码是机器学习中一种流行的编码技术。它是一种将分类数据转换为机器学习算法易于理解的形式的技术,从而可以做出良好的预测。它能够对分类数据进行分组,而不会丢失任何信息。

结论

在本主题中,我们详细介绍了机器学习中的特征工程、特征工程的工作原理、技术等。

虽然特征工程有助于提高模型的准确性和性能,但也有其他方法可以提高预测精度。此外,从上面给出的技术中,还有许多其他的特征工程技术可用,但我们提到了最常用的技术。