为什么选择特征选择套索?

机器算法验证 特征选择 线性模型 套索 岭回归
2022-02-13 04:24:44

假设我有一个高维数据集并且想要执行特征选择。一种方法是训练一个能够识别该数据集中最重要特征的模型,并用它来丢弃最不重要的特征。

在实践中,我会为此使用 sklearn 的SelectFromModel转换器。根据文档,任何具有 afeature_importances_或 acoef_属性的估计器都可以。

除了Lasso之外,许多其他线性模型也具有此属性(LinearRegressionRidgeElasticNet等等),可用于识别最重要的特征。

是什么让 Lasso 成为识别数据集中最重要特征的最流行模型?

1个回答

首先,在指定数据集中“最重要的特征”时要小心。有关此问题的不同观点,请参阅此页面例如,可能需要单独认为“不重要”的特征来帮助改进基于其他特征的预测,因此您可能不想丢弃它们。

LASSO 擅长的是提供一种原则性的方法来减少模型中的特征数量。相比之下,基于标准线性回归通过逐步选择或选择具有最低p值的特征的自动特征选择具有许多缺点LASSO 相对于其他基于回归的方法的优势在此处具体描述。LASSO 涉及一个惩罚因子,它决定了保留多少特征;使用交叉验证来选择惩罚因子有助于确保模型能够很好地推广到未来的数据样本。

岭回归根本不尝试选择特征,而是使用应用于所有回归系数平方和的惩罚。同样,通过交叉验证选择惩罚有助于确保泛化。弹性网可以被认为是 LASSO 与脊的混合体。有关这些惩罚方法之间差异的详细信息,请参阅此页面。如果您的主要兴趣是预测并且收集有关所有特征的信息并不太昂贵,则您可能根本不需要进行特征选择,而是使用岭回归来保留有关模型中所有预测变量的信息。

如果出于实际原因需要减少预测变量的数量,LASSO 是一个不错的选择。但它所做的只是为您提供一组有用的选定预测变量,在某种一般意义上不一定是最重要的。当特征相关时,LASSO 将根据其在手头特定数据样本中的表现来选择其中一个。使用不同的样本,它可以很好地从一组相关特征中选择不同的特征。这通常不会影响 LASSO 模型的预测性能,但它确实让人们对“最重要的特征”的含义有所怀疑。有关LASSO 建模中这种不稳定性的讨论,请参阅此页面。