几乎所有的 ML 笔记本都有一个部分,他们可以在其中选择要在模型中使用的最佳功能。为什么这一步总是存在?保留与响应变量不相关的变量有多糟糕?如果你真的不走运,那么是的,一个与你在训练集中的反应正相关的特征实际上可能与现实世界中的它负相关。但是,甚至不确定是否能够通过特征选择例程来捕捉它。
我的假设是,它曾经是计算资源稀缺时的必要步骤,但对于今天的资源,它基本上是无关紧要的。
你的看法是什么?你能举一个真实世界的例子,它会损害模型保留所有训练特征吗?
几乎所有的 ML 笔记本都有一个部分,他们可以在其中选择要在模型中使用的最佳功能。为什么这一步总是存在?保留与响应变量不相关的变量有多糟糕?如果你真的不走运,那么是的,一个与你在训练集中的反应正相关的特征实际上可能与现实世界中的它负相关。但是,甚至不确定是否能够通过特征选择例程来捕捉它。
我的假设是,它曾经是计算资源稀缺时的必要步骤,但对于今天的资源,它基本上是无关紧要的。
你的看法是什么?你能举一个真实世界的例子,它会损害模型保留所有训练特征吗?
你说的对。如果有人正确使用正则化并进行超参数调整以避免过度拟合,那么理论上应该不是问题(即多重共线性不会降低模型性能)
然而,在许多实际情况下它可能很重要。这里有两个例子:
特征选择步骤是为了防止模型过度拟合。特征选择步骤可能决定数据集中的所有变量都是相关的,或者它可能决定删除一些。如果没有执行特征选择步骤,则不会删除任何变量,并且生成的模型可能拟合良好,但可能(并且很可能)过度拟合。
过度拟合模型的主要问题是它们在样本外或验证数据上的表现不佳。这是维基百科给出的主要原因并且符合我的经验。如果模型中有额外的变量,那么不相关的数据会破坏模型的输出并降低其预测的准确性。
您可以采取更哲学的观点,并说您希望将建模建立在一些一致且合理的统计推理基础上。无论您选择哪种系统(经典、贝叶斯等),它都可能对某种形式的奥卡姆剃刀进行编码,因此内置了某种特征选择机制。也就是说,当比较具有相同拟合质量的两个模型时,它会更喜欢选择变量最少的那个。
正如fractalnature 指出的那样,在某些情况下,人类解释模型的能力很重要。有时你想要一个简单的模型,以至于人类可以自己用计算器应用它。优化医学评分系统的超稀疏线性整数模型一文的介绍提供了一个很好的例子。
一般来说,我认为我们希望摆脱不必要/坏的特征,以使自己摆脱维度的诅咒——我们使用的特征越多,我们需要的数据就越多,以确保特征空间的每个部分都有足够的数据来拟合模型. 除此之外,还有一些特定于我们的模型选择的问题,例如,
随机森林/GBDT。如果我们有 30 个特征并将 feature_bagging 设置为 10,则需要 >= 30C10 = 30,045,015 棵树来遍历所有可能性。此外,彼此高度线性相关的特征不会为模型增加额外的价值,但更有可能在特征装袋过程中被选择。
像 K-means 这样的基于距离的模型可以适应高维。
My assumption is that it used to be a necessary step when computing resources were scarce, but with today's resources it is basically irrelevant.
你完全正确。在计算的早期,当资源稀缺的时候,只需要保留重要的特征而丢弃其余的。
然而,以目前的资源丰富,这不再是必要的。该模型不会因包含“无用”功能而过度拟合。确实,机器学习有一个分支,称为“存储计算”,您可以在其中故意生成随机特征,希望其中的一部分仍然对模型有用。
例如,您可以签出名为“Rocket”的算法来进行时间序列预测。