在监督学习中,为什么具有相关功能不好?


35

我在某处读到,如果我们所具有的功能过于相关,则必须删除其中一个功能,因为这可能会使模型恶化。显然,相关功能意味着它们带来了相同的信息,因此删除其中之一是合乎逻辑的。但是我不明白为什么这会使模型恶化。


3
该规则在某些模型和分析中比其他规则更适用。您是否有可能在“我在某处阅读”中添加一些背景信息-例如,这与训练特定模型有关吗?
尼尔·斯莱特

3
相关特征不一定会使模型恶化。删除相关特征有助于推断有关特征的含义。
Hobbes

Answers:


31

关联功能通常不会改善模型(尽管它取决于问题的具体程度,例如变量数量和相关程度),但是它们以不同的方式在不同程度上影响特定的模型:

  1. 对于线性模型(例如,线性回归或逻辑回归),多重共线性可以产生变化很大且可能在数值上不稳定的解

  2. 随机森林可以很好地检测不同要素之间的相互作用,但是高度相关的要素可以掩盖这些相互作用。

更一般而言,这可以视为Occam剃刀的特例。更简单的模型是可取的,从某种意义上说,具有较少特征的模型也更简单。最小描述长度的概念使其更加精确。


4
除了数值稳定性外,OLS模型给出的预测不应受多重共线性的影响,因为预测变量的整体效果不会因多重共线性的存在而受到损害。当存在多重共线性时,这是对单个预测变量的影响的解释,该变量不可靠。
Akavall

11

(假设您正在谈论监督学习)

关联功能不会总是使您的模型恶化,但是它们也不会总是使模型变好。

删除相关功能的三个主要原因:

  • 使学习算法更快

由于尺寸的诅咒,较少的特征通常意味着速度方面的高度改进。

如果速度不是问题,也许不要立即删除这些功能(请参阅下一点)

  • 减少有害偏见

关键字有害。如果您具有关联的功能,但是它们也与目标关联,则要保留它们。您可以将功能视为提示,以作一个很好的猜测,如果您有两个基本相同的提示,但它们是很好的提示,则最好保留它们。

实际上,诸如朴素贝叶斯之类的某些算法实际上直接受益于“正”相关特征。其他人,例如随机森林可能会间接地从中受益。

想象一下,具有3个特征A,B和C。A和B与目标以及彼此高度相关,而C根本不相关。如果您从这3个功能中取样,则您有2/3的机会获得“好”功能,而例如,如果删除B,则该机会将降为1/2

当然,如果相关的特征首先不是超级有用的信息,则该算法可能不会受到太大影响。

因此,从速度上讲,删除这些功能可能是有道理的,但请记住,在此过程中,可能会使算法变差。此外,某些算法(例如决策树)中嵌入了特征选择。

解决此问题的一种好方法是使用包装器方法进行特征选择。仅当冗余功能不直接影响性能时,它才会删除这些功能。如果它们像在朴素的贝叶斯中一样有用,它们将被保留。(尽管请记住,包装方法很昂贵,可能会导致过度拟合)

  • 模型的可解释性

如果您的模型需要可解释,则可能不得不使其简化。确保还记得Occam的剃刀。如果您的模型在功能较少的情况下并没有那么“糟糕”,那么您应该使用较少的功能。


2

有时相关的功能以及提供的信息重复不会损害预测系统。考虑一组决策树,每个决策树都考虑一个行样本和一个列样本。如果两列高度相关,则有可能在特定树的列样本中不会选择其中之一,而该树将取决于其余的列。相关功能意味着您可以减少过度拟合(通过色谱柱采样),而不会放弃过多的预测质量。


2

做出决定时应考虑必要的最小变量。如上所述,这是具有上述最小描述长度的Occam剃刀的形式化处理。我喜欢那一个。

我倾向于用HDDT之类的方法来描述这种现象,以表示最有效的树,它不会根据可用数据做出虚假决策,并避免所有可能在多个数据点上做出的决策实例,而又不了解它们之间的相关性。


关于datascience.stackexchange.com/users/38887/valentin-calomme的评论:“相关功能不会总是使您的模型恶化,但也不会总是对其进行改进。” 我看不到或想不到变量之间具有高相关性的地方不会使您的模型恶化。至少在某种意义上,给定选择:我宁愿训练一个具有较少相关功能的网络。除此之外,其他任何方面在功能上都可以证明是更糟糕的。是否存在不正确的情况?
tjborromeo

1

从在数据库中存储数据的角度来看,存储相关特征在某种程度上类似于存储冗余信息,这可能会导致存储浪费,并且在更新或编辑元组后也可能导致数据不一致。

如果我们在模型中添加了太多的相关特征,则可能导致模型考虑不必要的特征,并且可能存在高维问题的诅咒我想这就是使构建的模型恶化的原因。

在机器学习的上下文中,我们通常用于PCA减小输入模式的尺寸。该方法考虑通过SVD某种方式(使用)删除相关特征,并且是无监督的方法。这样做是为了达到以下目的:

尽管这似乎并不可行,但是我看到人们为了避免过度拟合而使用了删除相关特征,但我认为这不是一个好习惯。有关更多信息,我强烈建议您在这里查看

另一个原因是,在深度学习模型中,就像MLPs添加关联的功能一样,您只需要添加不必要的信息即可为模型添加更多的计算和参数。


0

这个问题的答案在很大程度上取决于模型的目的。推断而言,高度相关的特征是一个众所周知的问题。例如,两个彼此高度相关且与y高度相关的特征可能在推理模型中都显得无关紧要,从而可能会丢失重要的解释性信号。因此,推断通常建议将其精简。

如果您的监督学习是为了预测,答案(与传统观点相反)通常是相反的。删除高度相关的功能的唯一原因是存储和速度问题。除此之外,关于要素的重要问题是要素是否有助于预测以及其数据质量是否足够。

噪声主导的特征与与y相关的特征相比,与其他特征的相关性趋向于降低。因此,如上文在Valentin的示例中所提到的,将后者薄化将增加前者的比例。

特别是,诸如随机森林和KNN之类的方法会平等对待所有特征,因此稀疏相关特征会直接降低其信噪比。

自动选择诸如单棵树,“纯”套索或神经网络之类的功能的方法可能受影响较小。但是即使那样,除了更长的计算时间之外,在混合中保持相关特征也几乎不会丢失任何预测方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.