为什么在执行交叉验证之前基于预测变量与因变量之间的低相关性而丢弃预测变量是不正确的?

Why is dropping predictors based on low correlation between predictors and the dependent variable before performing cross validation incorrect?

假设我有预测变量 X1X2、...、Xn 和因变量 Y.

我检查预测变量与 Y 之间的相关性,并删除与 Y 相关性较低的预测变量。现在,我使用 Y 和其余预测变量之间的交叉验证来训练逻辑回归模型。

这个方法有什么问题?

这样做可能会出现很多问题,最终会导致很长的答案 - 我只会指出两个我认为最重要的问题,您可以使用 "buzzwords"查找任何仍然不清楚的地方:

  1. 根据特征与目标的相关性删除特征本质上是一种特征过滤形式。重要的是要了解特征过滤 不一定会提高预测性能 。想想例如将 AND 或 OR 配置中的 2 个特征组合到目标变量中,并且只是在一起将允许正确预测目标变量。这些特征与目标的相关性很低,但放弃它们很可能会降低您的预测性能。除了特征过滤器之外,还有特征包装器,您基本上可以通过它使用模型的特征子集并评估模型的预测性能。因此,与仅查看功能和目标的功能过滤器相比,功能包装器查看实际模型性能。顺便说一句:如果你最终使用基于特征相关性的特征过滤器,你可能仍然不仅要丢弃特征目标相关性低的特征,还要丢弃特征间相关性高的特征(因为这些特征不包含太多新特征完全没有信息)。

  2. 如果您想调整您的特征选择(例如,您想要在数据中保留的 information/variance 数量、您想要保留的特征数量、相关性数量你允许等)并且你在你的交叉验证和重采样方法的 之外 执行此操作,你最终可能会得到对最终模型过于乐观的错误估计。这是因为在 CV 过程中不包括那些,您最终会选择一个未正确(=独立)估计的 "best" 配置,因此可能只是碰巧是好的。所以,如果你想正确估计错误,你应该考虑在 CV 过程中也包括你的特征选择。