Answers:
关联功能通常不会改善模型(尽管它取决于问题的具体程度,例如变量数量和相关程度),但是它们以不同的方式在不同程度上影响特定的模型:
对于线性模型(例如,线性回归或逻辑回归),多重共线性可以产生变化很大且可能在数值上不稳定的解。
随机森林可以很好地检测不同要素之间的相互作用,但是高度相关的要素可以掩盖这些相互作用。
更一般而言,这可以视为Occam剃刀的特例。更简单的模型是可取的,从某种意义上说,具有较少特征的模型也更简单。最小描述长度的概念使其更加精确。
(假设您正在谈论监督学习)
关联功能不会总是使您的模型恶化,但是它们也不会总是使模型变好。
删除相关功能的三个主要原因:
由于尺寸的诅咒,较少的特征通常意味着速度方面的高度改进。
如果速度不是问题,也许不要立即删除这些功能(请参阅下一点)
关键字有害。如果您具有关联的功能,但是它们也与目标关联,则要保留它们。您可以将功能视为提示,以作一个很好的猜测,如果您有两个基本相同的提示,但它们是很好的提示,则最好保留它们。
实际上,诸如朴素贝叶斯之类的某些算法实际上直接受益于“正”相关特征。其他人,例如随机森林可能会间接地从中受益。
想象一下,具有3个特征A,B和C。A和B与目标以及彼此高度相关,而C根本不相关。如果您从这3个功能中取样,则您有2/3的机会获得“好”功能,而例如,如果删除B,则该机会将降为1/2
当然,如果相关的特征首先不是超级有用的信息,则该算法可能不会受到太大影响。
因此,从速度上讲,删除这些功能可能是有道理的,但请记住,在此过程中,可能会使算法变差。此外,某些算法(例如决策树)中嵌入了特征选择。
解决此问题的一种好方法是使用包装器方法进行特征选择。仅当冗余功能不直接影响性能时,它才会删除这些功能。如果它们像在朴素的贝叶斯中一样有用,它们将被保留。(尽管请记住,包装方法很昂贵,可能会导致过度拟合)
如果您的模型需要可解释,则可能不得不使其简化。确保还记得Occam的剃刀。如果您的模型在功能较少的情况下并没有那么“糟糕”,那么您应该使用较少的功能。
做出决定时应考虑必要的最小变量。如上所述,这是具有上述最小描述长度的Occam剃刀的形式化处理。我喜欢那一个。
我倾向于用HDDT之类的方法来描述这种现象,以表示最有效的树,它不会根据可用数据做出虚假决策,并避免所有可能在多个数据点上做出的决策实例,而又不了解它们之间的相关性。
从在数据库中存储数据的角度来看,存储相关特征在某种程度上类似于存储冗余信息,这可能会导致存储浪费,并且在更新或编辑元组后也可能导致数据不一致。
如果我们在模型中添加了太多的相关特征,则可能导致模型考虑不必要的特征,并且可能存在高维问题的诅咒,我想这就是使构建的模型恶化的原因。
在机器学习的上下文中,我们通常用于PCA
减小输入模式的尺寸。该方法考虑通过SVD
某种方式(使用)删除相关特征,并且是无监督的方法。这样做是为了达到以下目的:
尽管这似乎并不可行,但是我看到人们为了避免过度拟合而使用了删除相关特征,但我认为这不是一个好习惯。有关更多信息,我强烈建议您在这里查看。
另一个原因是,在深度学习模型中,就像MLPs
添加关联的功能一样,您只需要添加不必要的信息即可为模型添加更多的计算和参数。
这个问题的答案在很大程度上取决于模型的目的。推断而言,高度相关的特征是一个众所周知的问题。例如,两个彼此高度相关且与y高度相关的特征可能在推理模型中都显得无关紧要,从而可能会丢失重要的解释性信号。因此,推断通常建议将其精简。
如果您的监督学习是为了预测,答案(与传统观点相反)通常是相反的。删除高度相关的功能的唯一原因是存储和速度问题。除此之外,关于要素的重要问题是要素是否有助于预测以及其数据质量是否足够。
噪声主导的特征与与y相关的特征相比,与其他特征的相关性趋向于降低。因此,如上文在Valentin的示例中所提到的,将后者薄化将增加前者的比例。
特别是,诸如随机森林和KNN之类的方法会平等对待所有特征,因此稀疏相关特征会直接降低其信噪比。
自动选择诸如单棵树,“纯”套索或神经网络之类的功能的方法可能受影响较小。但是即使那样,除了更长的计算时间之外,在混合中保持相关特征也几乎不会丢失任何预测方法。