与独立评估特征的过滤方法或在不同子集上重复训练模型的封装方法不同,嵌入式方法将特征选择作为模型训练过程的组成部分。可以将其想象为构建一个模型,该模型在一次训练运行中就内在地学习到哪些特征是重要的,哪些可以被忽略。这些方法通常比封装方法的计算成本更低,因为它们不需要训练大量模型。它们结合了过滤方法和封装方法的优点:它们考虑特征间的关联(像封装方法一样),但通常更快。选择过程“嵌入”在模型自身的学习算法中。嵌入式方法的工作原理主要思想是模型算法有一个内置机制,在拟合过程中惩罚复杂性或为特征分配重要性分数。根据模型的标准,被认为影响力较小的特征要么被赋予非常小的权重(有效地被忽略),要么完全被赋予零权重,从而将它们从最终模型中移除。嵌入式方法的优点效率: 通常比封装方法更快,因为它们将特征选择与模型训练整合在一起,通常只需要训练一个模型(或数量与标准模型训练相当)。关联感知: 在做出选择决策时,它们内在地考虑特征间的关系,因为选择发生在模型学习过程的背景下。模型特定性: 特征选择是针对正在训练的特定模型定制的,与模型无关的过滤方法选择的特征相比,这可能为该特定模型带来更好的性能。常见嵌入式技术我们将在后续章节中仔细研究嵌入式方法的两个流行类别:正则化方法: 像L1正则化(用于Lasso回归)这样的技术根据系数的大小向模型的损失函数添加一个惩罚项。L1惩罚鼓励稀疏性,这意味着它倾向于将不太重要特征的系数精确地收缩到零。系数为零的特征被有效地剔除。 惩罚损失函数通常看起来像: $$ \text{损失} = \text{原始损失} + \lambda \sum_{j=1}^{p} |\beta_j| $$ 这里,$\beta_j$代表第$j$个特征的系数,$\lambda$是正则化强度。更大的$\lambda$会导致更多的系数收缩到零。基于树的重要性: 像随机森林和梯度提升这样的集成方法在训练过程中自然地计算特征重要性分数。这些分数通常衡量一个特征对减少不纯度(例如,分类中的基尼不纯度或熵在分类中)或方差(在回归中)在集成中所有树上的贡献程度。重要性分数较低的特征可以被认为相关性较低并可能被移除。尽管强大,嵌入式方法是模型依赖的;选择的特征针对所使用的特定算法(例如Lasso或随机森林)进行了优化。其有效性也可能取决于超参数调优,例如Lasso中的正则化强度$\lambda$。后续章节将提供使用Scikit-learn实施L1正则化和使用基于树的特征重要性进行特征选择的实践细节。