在 ML 中,一旦我们删除了一个特性,我们是否可以安全地假设该特性不再重要?

机器算法验证 机器学习 特征选择 模型选择 正则化 大数据
2022-04-11 04:17:50

这可能是一个非常简单的问题。假设我们使用一些度量来删除特征,无论是 AIC、套索等正则化、变量重要性、t 检验等......

假设我们在继续改进模型时再次使用相同的技术,是否可以安全地假设任何删除的特征将不再重要?我的理解是某些特征可能与其他特征相关——但如果是这种情况,你真的只需要包含其中一个,尤其是当它们高度相关时。

除此之外,我想不出你为什么要在模型中添加一个特征,一旦它被删除。

我问这个问题的原因是因为我正在尝试构建一个具有许多功能的大型模型。因为我有这么多的数据和有限的技术,我希望按顺序建立一个模型。用 10 个特征训练模型,删除不重要的特征,然后通过添加 10 个特征来重建它,删除不重要的特征,然后继续直到我达到计算机的容量。

这个过程有什么问题吗?

谢谢!

2个回答

不,你不能安全地假设。原因是条件独立并不意味着独立,反之亦然(wiki)。

此外,您遵循的前向选择风格方法存在一个基本问题:像这样的模型选择标准通常依赖于 p 值/t 统计量/...基于“正确”的基础模型。但是,如果您进行前向选择并且仅在该过程的后期才包含“正确”功能,则这是不正确的。这就是为什么通常你至少应该做反向选择——如果你做任何逐步选择的话。这样,“真实”模型至少嵌套在 startimg 模型中以供选择。

正如上面评论中提到的,有(很多)比逐步算法更好的方法来进行特征选择。至少尝试 LASSO 方法。

您似乎假设模型以加法方式工作,因此向模型添加特征只是“添加”一些与此特征相关的内容,并且不会影响模型的其余部分,与删除特征相同。事实并非如此。如果机器学习模型像这样工作,那么用k您只需要构建的功能k具有单一特征的模型并找到组合它们的方法。在这里你可以找到一个最近的线程,以及许多其他类似问题的链接,其中包括回归模型的新特征会影响模型如何使用其他特征。这发生在线性回归中,但也适用于其他机器学习算法。

您说您会假设这“仅”在变量相关时才会出现,但是对于现实生活中的数据,变量之间总会存在某种程度的相关性。此外,它不仅与变量对之间的相关性有关,还与所有变量之间的关系有关,其中这些关系也可以是非线性的。您应该谈论的是独立性,并且看到所有变量独立的可能性甚至更小,然后看到它们都不相关。

更重要的是,通过添加一个新功能,您的算法需要适应。想象一下,您有一个决策树,其约束条件是每个最终节点中的样本不超过五个。不能在不重新构建的情况下向此类树添加新功能,因为每个最终节点中的样本不超过五个,因此您无法进一步拆分该节点。在这种情况下,您需要使用不同的拆分或拆分组合重新构建整个树,因此它将以与初始树不同的方式使用您的数据。即使您添加的新功能独立于其他功能,也会出现这种情况。

您的建议在自动模型选择线程的算法中也得到了部分回答,该线程讨论了逐步特征选择算法,而最受好评的答案显示了如何通过添加(或删除)变量以这种逐步方式进行操作导致最终得到错误的模型。由于上述原因,它根本不起作用。