机器学习中的特征选择技术

2025 年 6 月 13 日 | 阅读 8 分钟
特征选择是一种通过移除冗余、不相关或噪声特征,从原始特征集中选择最相关特征子集的方法。

在开发机器学习模型时,数据集中只有少数变量对构建模型有用,其余特征要么是冗余的,要么是不相关的。如果我们用所有这些冗余和不相关的特征输入数据集,可能会对模型的整体性能和准确性产生负面影响并降低它们。因此,识别和选择数据中最合适的特征,并移除不相关或不太重要的特征非常重要,这需要借助机器学习中的特征选择来完成。

Feature Selection Techniques in Machine Learning

特征选择是机器学习的重要概念之一,它极大地影响模型的性能。由于机器学习遵循“垃圾进,垃圾出”的原则,我们始终需要向模型输入最合适、最相关的数据集,以获得更好的结果。

在本主题中,我们将讨论机器学习的不同特征选择技术。但在此之前,让我们首先了解一些特征选择的基础知识。

  • 什么是特征选择?
  • 特征选择的必要性
  • 特征选择方法/技术
  • 特征选择统计

什么是特征选择?

征是影响问题或对问题有用的属性,而为模型选择重要特征的过程称为特征选择。每个机器学习过程都依赖于特征工程,它主要包含两个过程:特征选择和特征提取。尽管特征选择和提取过程的目标可能相同,但它们彼此完全不同。它们之间的主要区别在于,特征选择是从原始特征集中选择子集,而特征提取则是创建新特征。特征选择是一种通过仅使用相关数据来减少模型输入变量的方法,以减少模型的过拟合。

因此,我们可以将特征选择定义为:“它是一个自动或手动选择最合适和最相关特征子集用于模型构建的过程。”特征选择是通过包含重要特征或排除数据集中的不相关特征来执行的,而不会改变它们。

特征选择的必要性

在实施任何技术之前,了解该技术的必要性非常重要,特征选择也是如此。我们知道,在机器学习中,为了获得更好的结果,必须提供预处理好的优质输入数据集。我们收集大量数据来训练我们的模型,帮助它更好地学习。通常,数据集包含噪声数据、不相关数据和一些有用的数据。此外,大量数据也会减慢模型的训练过程,而噪声和不相关数据可能会导致模型预测和性能不佳。因此,从数据集中移除这些噪声和不重要的数据非常必要,而这正是通过特征选择技术来完成的。

选择最佳特征有助于模型表现良好。例如,假设我们想要创建一个模型,自动决定哪辆车应该被压碎以获取备件,为此我们有一个数据集。该数据集包含汽车型号、年份、车主姓名、里程数。在这个数据集中,车主姓名对模型性能没有贡献,因为它不能决定汽车是否应该被压碎,所以我们可以移除这一列,并选择其余的特征(列)来构建模型。

以下是在机器学习中使用特征选择的一些好处:

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

特征选择技术

特征选择技术主要有两种类型:

  • 监督式特征选择技术
    监督式特征选择技术会考虑目标变量,可用于有标签的数据集。
  • 无监督式特征选择技术
    无监督式特征选择技术忽略目标变量,可用于无标签的数据集。
Feature Selection Techniques in Machine Learning

监督式特征选择下主要有三种技术:

1. 包装法 (Wrapper Methods)

在包装法中,特征选择被视为一个搜索问题,其中会制作、评估和比较不同的组合。它通过迭代地使用特征子集来训练算法。

Feature Selection Techniques in Machine Learning

根据模型的输出,添加或减少特征,然后用这个新的特征集再次训练模型。

包装法的一些技术包括:

  • 前向选择 (Forward selection) - 前向选择是一个迭代过程,从一个空的特征集开始。每次迭代后,它会添加一个特征,并评估性能以检查是否有所改善。这个过程会持续进行,直到添加新变量/特征不再提高模型性能为止。
  • 后向消除 (Backward elimination) - 后向消除也是一种迭代方法,但它与前向选择相反。该技术从考虑所有特征开始,然后移除最不重要的特征。这个消除过程会持续进行,直到移除特征不再提高模型性能为止。
  • 穷举特征选择 (Exhaustive Feature Selection) - 穷举特征选择是最好的特征选择方法之一,它以暴力破解的方式评估每个特征集。这意味着该方法会尝试并创建所有可能的特征组合,并返回性能最佳的特征集。
  • 递归特征消除 (Recursive Feature Elimination)
    递归特征消除是一种递归的贪婪优化方法,通过递归地选择越来越小的特征子集来选择特征。然后,用每组特征训练一个评估器,并使用 coef_ attribute 或通过 feature_importances_attribute 来确定每个特征的重要性。

2. 过滤法 (Filter Methods)

在过滤法中,特征是根据统计度量来选择的。这种方法不依赖于学习算法,而是在预处理步骤中选择特征。

过滤法通过使用不同的度量进行排名,从模型中过滤掉不相关的特征和冗余的列。

使用过滤法的优点是计算时间短,并且不会对数据造成过拟合。

Feature Selection Techniques in Machine Learning

过滤法的一些常用技术如下:

  • 信息增益 (Information Gain)
  • 卡方检验 (Chi-square Test)
  • 费舍尔分数 (Fisher's Score)
  • 缺失值比例 (Missing Value Ratio)

信息增益:信息增益决定了在转换数据集时熵的减少量。通过计算每个变量相对于目标变量的信息增益,可以将其用作一种特征选择技术。

卡方检验:卡方检验是一种确定分类变量之间关系的技术。计算每个特征与目标变量之间的卡方值,并选择具有最佳卡方值的所需数量的特征。

费舍尔分数 (Fisher's Score)

费舍尔分数是流行的监督式特征选择技术之一。它按费舍尔准则以降序返回变量的排名。然后我们可以选择费舍尔分数较大的变量。

缺失值比例 (Missing Value Ratio)

缺失值比例的值可用于根据阈值评估特征集。获取缺失值比例的公式是每列的缺失值数量除以观测总数。超过阈值的变量可以被删除。

Feature Selection Techniques in Machine Learning

3. 嵌入法 (Embedded Methods)

嵌入法结合了过滤法和包装法的优点,既考虑了特征的交互作用,又具有较低的计算成本。这些方法处理速度快,类似于过滤法,但比过滤法更准确。

Feature Selection Techniques in Machine Learning

这些方法也是迭代的,它会评估每次迭代,并以最优方式找出在特定迭代中对训练贡献最大的最重要特征。嵌入法的一些技术包括:

  • 正则化 (Regularization) - 正则化向机器学习模型的不同参数添加一个惩罚项,以避免模型过拟合。这个惩罚项被添加到系数中;因此它会将一些系数收缩到零。那些系数为零的特征可以从数据集中移除。正则化技术的类型有 L1 正则化(Lasso 正则化)或弹性网络(L1 和 L2 正则化)。
  • 随机森林重要性 (Random Forest Importance) - 不同的基于树的特征选择方法通过提供特征重要性来帮助我们选择特征。在这里,特征重要性指明了哪个特征在模型构建中更重要或对目标变量有更大影响。随机森林就是这样一种基于树的方法,它是一种装袋算法 (bagging algorithm),聚合了不同数量的决策树。它会根据节点在所有树上的性能或不纯度减少(基尼不纯度)来自动对节点进行排名。节点根据不纯度值进行排列,从而允许在特定节点下修剪树。剩余的节点创建了最重要特征的子集。

如何选择特征选择方法?

对于机器学习工程师来说,理解哪种特征选择方法将对他们的模型有效是非常重要的。我们越了解变量的数据类型,就越容易选择合适的统计度量来进行特征选择。

Feature Selection Techniques in Machine Learning

要了解这一点,我们需要首先确定输入和输出变量的类型。在机器学习中,变量主要有两种类型:

  • 数值变量:具有连续值的变量,如整数、浮点数。
  • 分类变量:具有分类值的变量,如布尔值、有序值、名义值。

以下是一些可用于基于过滤的特征选择的单变量统计度量:

1. 数值输入,数值输出

数值输入变量用于预测回归建模。这种情况下的常用方法是相关系数。

  • 皮尔逊相关系数(用于线性相关)。
  • 斯皮尔曼等级相关系数(用于非线性相关)。

2. 数值输入,分类输出

数值输入与分类输出是分类预测建模问题的情况。在这种情况下,也应使用基于相关性的技术,但要与分类输出结合使用。

  • ANOVA 相关系数(线性)。
  • 肯德尔等级相关系数(非线性)。

3. 分类输入,数值输出

这是带有分类输入的回归预测建模的情况。它是回归问题的一个不同例子。我们可以使用与上述情况中讨论的相同度量,但顺序相反。

4. 分类输入,分类输出

这是带有分类输入变量的分类预测建模的情况。

这种情况常用的技术是卡方检验。我们也可以在这种情况下使用信息增益。

我们可以用下表总结上述情况及相应的度量:

输入变量输出变量特征选择技术
数值的数值的
  • 皮尔逊相关系数(用于线性相关)。
  • 斯皮尔曼等级相关系数(用于非线性相关)。
数值的分类
  • ANOVA 相关系数(线性)。
  • 肯德尔等级相关系数(非线性)。
分类数值的
  • 肯德尔等级相关系数(线性)。
  • ANOVA 相关系数(非线性)。
分类分类
  • 卡方检验(列联表)。
  • 互信息。

结论

特征选择是机器学习中一个非常复杂和广阔的领域,已经有大量的研究来发现最佳方法。没有固定的最佳特征选择方法规则。然而,方法的选择取决于机器学习工程师,他们可以结合和创新方法来为特定问题找到最佳方法。应该尝试在通过不同统计度量选择的不同特征子集上拟合多种模型。