传统特征工程模型

2024年8月28日 | 阅读 12 分钟

引言

将未处理的数据转换为适合机器学习算法的格式的过程称为特征工程。提高模型性能需要选择、生成和修改特征。机器学习模型可以使用可衡量的特征,即数据中的质量或属性作为输入。通过识别和消除噪声或不必要的数据,特征工程旨在提高模型的预测能力。

简单来说,特征工程就像是在准备一道菜时组装食材。数据科学家精心选择和开发特征,就像厨师选择和准备食材来制作一道好菜一样,以创建一个高效的机器学习模型。

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

  • 增强模型性能:精心设计的特征能够极大地提升机器学习模型的性能。通过为模型提供有意义且相关的数据,特征工程有助于模型做出正确的预测或分类。
  • 降维:通过选择或生成对给定任务最具指导意义的特征子集,特征工程方法可以帮助降低数据的维度。这不仅使模型更简单,还降低了过拟合的风险。
  • 处理复杂数据:现实应用中的数据通常是杂乱无章、缺失或非结构化的。通过将原始数据转换为机器学习算法更容易理解和处理的格式,特征工程使数据科学家能够从复杂数据源中提取有价值的信息。
  • 可解释性:精心设计的特征可以提高模型解释其预测的能力。为了获得对数据底层模式的洞察,必须理解每个特征在模型决策过程中的作用。

传统特征工程模型概述

传统的特征工程模型提供了一系列广泛的方法,用于在将数据提供给机器学习算法之前进行准备和修改。

  • 编码技术:机器学习算法可以解释代表分类变量的数值。这些技术包括独热编码、标签编码、序数编码、计数编码和目标编码。
  • 缩放技术:为了使数值特征的范围归一化,使它们具有可比性,并防止具有较大尺度的特征在模型中占据主导地位,可以采用标准化、最小-最大缩放和鲁棒缩放等技术。
  • 转换技术:这些包括使用多项式特征、对数转换和 Box-Cox 转换来改变特征的分布或关系,以便更好地适应模型。

传统特征工程中的常用技术

1. 独热编码 (One-Hot Encoding)

独热编码是一种表示分类数据的方法,使用二进制向量。此过程将每个类别转换为一个二进制向量,其长度等于特征中不同类别的数量。每个向量除了对应类别的索引处为 1 外,其余位置均为 0。这确保了模型不会假定类别之间存在序数关系。

用例和示例

  • 示例 1:假设我们有一个“颜色”特征,其中包含红色、蓝色和绿色等类别。独热编码后,每个类别现在是一个二进制向量:红色 = [1, 0, 0],蓝色 = [0, 1, 0],绿色 = [0, 0, 1]。
  • 示例 2:在自然语言处理中,独热编码是一种表示词汇项的常用技术。每个词的二进制向量表示该词是否出现在特定文本中。

优点

  • 在不假设序数关系的情况下,保持分类数据。
  • 它适用于旨在间接处理分类数据的算法。

局限性

  • 不捕捉类别之间的关系。
  • 增加了数据集的复杂性,这可能对具有大量类别的特征造成困扰。

2. 标签编码 (Label Encoding)

标签编码是将分类数据转换为数值标签的一种技术。每个类别被分配一个介于 0 和 n-1 之间的唯一整数,其中 n 是特征中不同类别的总数。通过这种转换,算法现在可以理解分类数据为数值。

用例和示例

  • 示例 1:想象一下有一个“尺寸”特征,包含小、中、大三种类别。标签编码后,大 = 2,中 = 1,小 = 0。
  • 示例 2:在需要数值输入的算法中,如决策树和随机森林,标签编码很常见。

优点

  • 易于理解的转换。
  • 有助于需要数值输入的算法。

局限性

  • 适用于具有高基数的特征。
  • 可能会产生实际不存在的序数关系,导致模型产生错误的假设。

3. 序数编码 (Ordinal Encoding)

在考虑类别之间的序数关系时,序数编码与标签编码类似。数值标签根据其等级或顺序应用于类别。这种编码保留了分类特征中包含的序数数据。

用例和示例

  • 示例 1:假设我们有一个名为“温度”的特征,包含寒冷、温暖和炎热三个类别。使用序数编码,可以为寒冷分配 0,温暖分配 1,炎热分配 2。
  • 示例 2:当调查回复遵循自然顺序时,例如从“非常不同意”到“非常同意”,通常会使用序数编码。

优点

  • 非常适合具有明确顺序或等级的特征。
  • 保留了分类特征中的序数信息。

局限性

  • 假设的类别之间线性关系并不总是准确的。
  • 在序数关系缺乏显着性的情况下,可能导致不准确的结论。

4. 计数编码 (Count Encoding)

计数编码用数据集中每个类别的实例数来替换原始值。在处理高基数分类变量时,这种编码可能很有用,因为它捕捉了每个类别的频率。

用例和示例

  • 示例 1:数据集中“城市”特征的标签通过计数编码分配,该编码计算每个城市的出现次数。
  • 示例 2:在推荐系统中,计数编码有助于处理“用户 ID”之类的特征,这些特征的重要性在于了解每个用户的互动频率。

优点

  • 保留了关于类别分布的重要信息。
  • 适用于具有高基数的特征。

局限性

  • 如果处理不当,可能会夸大不常见类别的价值。
  • 不适用于出现次数与预测强度无关的特征。

5. 目标编码 (Target Encoding)

目标编码(有时也称为均值编码)用目标变量的均值来替换每个类别中的原始值。这种编码,对于分类问题尤其有用,它利用目标变量中的信息来编码类别特征。

用例和示例

  • 示例 1:在目标变量为“流失”(1 表示流失,0 表示未流失)的二元分类问题中,目标编码用特征每个类别的平均流失率来替换原始值。
  • 示例 2:为了提高模型性能,目标编码经常在 Kaggle 竞赛和实际应用中使用。

优点

  • 适用于具有大量类别的特征。
  • 它整合了目标变量的信息,这可能会带来更强的预测能力。

局限性

  • 对目标变量中的异常值和类别不平衡敏感。
  • 如果未进行适当的正则化,容易过拟合。

特征缩放技术

1. 标准化 (Standardization)

标准化(有时也称为 Z 分数归一化)将数据转换,使其均值为 0,标准差为 1。它通过从每个数据点减去特征均值,然后除以标准差来实现。结果分布的标准差为一,均值为零。

用例和示例

假定数据呈正态分布的算法,如支持向量机(SVM)、逻辑回归和线性回归,经常使用标准化。例如,标准化可以提高线性回归中系数指示每个因素影响大小的准确性。

假设我们有一个包含教育水平、收入和年龄等属性的数据集。例如,通过标准化这些特征,我们可以更成功地比较它们对预测房价这一目标变量的影响。

优点

  • 标准化有助于解释线性模型的系数。
  • 降低算法对特征尺度的敏感度。

局限性

  • 它假定数据呈正态分布,但这并非总是如此。
  • 此外,异常值仍然可能通过影响均值和标准差来影响缩放过程。

2. 最小-最大缩放 (Min-Max Scaling)

最小-最大缩放(通常也称为归一化)将数据缩放到一个设定的范围,通常在 0 到 1 之间。它通过用最大值和最小值之差除以减去特征的最小值来实现。

用例和示例

需要特征具有相似尺度的算法,如 K 近邻 (KNN) 和神经网络,经常使用最小-最大缩放。例如,在图像处理任务中,像素值通常被归一化到 0 到 1 之间的范围。

优点

  • 最小-最大缩放保留了数据的原始分布。
  • 当算法要求特征落在受限区间内时,它可能很有用。

局限性

  • 如果最小值和最大值不能代表整个数据集,它可能效果不佳。
  • 它对异常值敏感,因为极端值可能会不成比例地影响缩放。

3. 鲁棒缩放

也称为鲁棒标准化,鲁棒缩放涉及使用对异常值效应不太敏感的鲁棒估计器来缩放数据。在减去中位数后,使用四分位距(IQR)而不是标准差进行缩放。

用例和示例

当处理包含偏斜分布或异常值的数据集时,鲁棒缩放非常有利。由于对特征尺度的敏感度降低,决策树和聚类等算法经常使用它。

假设我们有一个家庭收入数据集,其中少数人的收入非常高。通过使用鲁棒缩放,我们可以减轻这些异常值对缩放过程的影响。

优点

  • 在表示数据中心趋势方面,相对于异常值。
  • 鲁棒缩放比标准化和最小-最大缩放表现更好。它也不太受异常值的影响。

局限性

  • 由于鲁棒缩放不提供均值为 0 和标准差为 1 的结果,因此对于依赖正态性的算法可能不适用。
  • 在数据分布已经狭窄的情况下,它可能会压缩四分位距。

特征转换技术

1. 多项式特征 (Polynomial Features)

通过将现有特征的幂次提高到 2 来创建新特征,称为多项式特征。例如,给定一个特征 (x),生成二阶多项式特征将涉及在原始特征 (x) 的基础上生成 (x^2)。因此,模型可以表示特征之间的非线性交互。

用例和示例

  • 在多项式回归中,当假定自变量和因变量之间的关系是多项式时,经常使用多项式特征。
  • 例如,在住房价格预测模型中,房屋的平方英尺 (x) 可能与价格之间存在非线性关系。为了让模型有效地表示这种关系,必须将 (x^2) 作为特征包含在内。

优点

  • 记录目标变量和特征之间复杂的关联。
  • 当特征和目标之间存在非线性关系时,它可以增强线性模型的性能。

局限性

  • 增加更多特征可能导致过拟合。
  • 对于大型数据集或高阶多项式,计算成本昂贵。

2. 对数转换 (Log Transformation)

对数转换是指对数值特征取对数。当数据存在偏斜或变量之间存在乘法关系而非加法关系时,它非常有帮助。对数转换可以稳定方差并改善数据的高斯性。

用例和示例

  • 右偏变量,如收入或人口统计数据,经常进行对数转换。
  • 例如,在金融分析中,对股票价格进行对数转换可以提高数据的平稳性和统计分析能力。

优点

  • 减小异常值的影响。
  • 有助于处理偏斜的数据分布。

局限性

  • 不适用于零值或负值。
  • 转换可能并不总是能产生理想的高斯分布。

3. Box-Cox 转换 (Box-Cox Transformation)

Box-Cox 转换是幂次转换家族的一部分,包括平方根和对数转换。使用的转换类型由参数化的 lambda 值决定。

用例和示例

  • 在处理非正态分布数据时,Box-Cox 转换很有帮助。
  • 在时间序列分析中,可以使用 Box-Cox 转换来稳定数据方差,然后再应用预测模型。

优点

  • 能够处理广泛的数据分布。
  • 允许通过 lambda 参数进行精细调整。

局限性

  • 要求统计数据仅为正数。
  • lambda 参数的选择过程可能比较随意,需要交叉验证。

特征选择技术

1. 过滤方法 (Filter Methods)

过滤方法是特征选择策略,它们在不使用机器学习算法的情况下评估特征的内在属性。通常,这些技术使用启发式算法或统计度量来对属性进行排名或评分。卡方检验、互信息和相关系数是常见的过滤技术的例子。

用例和示例

  • 相关系数:相关系数等过滤技术有助于识别数据集中高度相关的特征。例如,在预测住房价值时,平方英尺和卧室数量等因素之间可能存在强相关性。
  • 在涉及分类数据的分类问题中,卡方检验是一种常用的特征选择方法。例如,在识别区分合法电子邮件和垃圾邮件的相关词语方面,卡方检验可能很有用。

优点

  • 依赖于机器学习方法。
  • 对于大型数据集,计算效率高。

局限性

  • 忽略特征交互。
  • 容易受到噪声数据的影响。

2. 包裹方法 (Wrapper Methods)

包裹方法通过使用在多个特征子集上训练的机器学习算法来选择特征子集,通过评估它们的性能。这些方法通常使用前向选择、后向消除或递归特征消除等策略,涉及迭代不同的特征组合,并选择最大化预定性能参数的子集。

用例和示例

  • 前向选择:以一个空特征集作为起点,前向选择一次添加一个特征,同时监控模型的性能。在生物信息学中,基因选择在微阵列数据分析中是此策略的流行用法。
  • 递归特征消除 (RFE):RFE 是一种特征消除技术,它通过为每个特征分配一个值来迭代地消除特征,直到找到理想的特征子集。在图像分类问题中,选择高维图像数据中的相关特征是常见的用法。

优点

  • 与过滤方法相比,可以提高预测精度。
  • 考虑特征交互及其对模型性能的联合影响。

局限性

  • 计算量大,尤其是在处理大型特征集时。
  • 需要大量的超参数调整才能最大化效率。

3. 嵌入方法 (Embedded Methods)

嵌入式技术在模型训练过程中执行特征选择。通过将特征选择包含在模型创建步骤中,这些策略使训练能够确定哪些特征最重要。Lasso(L1 正则化)等正则化方法和随机森林等基于树的算法是常见示例。

用例和示例

  • Lasso 回归(L1 正则化):该方法通过惩罚系数的绝对值大小,迫使一些系数绝对为零。由于此特性,它是一种理想的特征选择方法,尤其适用于需要特征稀疏性的线性回归问题。
  • 随机森林:这些决策树根据特征降低不纯度的贡献来对其进行排序,使用特征重要性分数。在模型训练过程中,保留重要性分数较高的特征,修剪重要性分数较低的特征。

优点

  • 不易过拟合,尤其是在随机森林等集成技术中
  • 自动处理特征交互和非线性关系。

局限性

  • 性能高度依赖于底层模型及其超参数的选择。
  • 它可能不像包裹技术那样总是能捕捉到复杂特征关系。

特征工程的评估指标

1. 准确性

在评估特征工程中模型的性能时,准确率是最容易使用的度量之一。它计算所有实例中正确分类实例的百分比。特征工程中的准确率衡量了所设计的特征在多大程度上提高了模型的整体预测能力。

2. 精确率和召回率

在模型的所有正面预测中,精确率显示了准确的正面预测的百分比。它侧重于预测正面事件的显着性。

相反,召回率量化了数据集中与真阳性预测相对应的真实阳性案例的百分比。它突出了模型检测所有阳性案例的能力,即使存在假阳性。

3. F1 分数

精确率和召回率的调和平均数,F1 分数在两者之间取得了平衡。由于它同时考虑了假阳性和假阴性,因此此统计量有助于评估模型的整体性能。

F1 分数有助于理解特征工程中召回率和准确率之间的权衡。当类别分布不均或需要最小化假阳性和假阴性时,它特别有用。

4. ROC-AUC 分数

AUC 和接收者操作特征 (ROC) 曲线用于在不同阈值下评估二元分类算法的性能。

ROC 曲线显示了在不同阈值水平下的真阳性率 (TPR) 与假阳性率 (FPR) 的关系,以说明灵敏度和特异性之间的权衡。

结论

总而言之,传统的特征工程模型涵盖了对提高机器学习模型准确性至关重要的各种方法。这些模型通过编码、缩放、转换和选择等技术来最大化特征表示。严格的评估标准保证了它们的有效性,这有助于创建更复杂、更成功的预测模型。