为什么使用 RFE 进行特征缩减后 R2 值会增加?

Why does R2-value increase after feature-reduction with RFE?

对于探索性学期项目,我试图使用生产过程中进行的各种测量来预测质量控制测量的结果值。对于这个项目,我正在测试不同的算法(LinearRegression、RandomForestRegressor、GradientBoostingRegressor,...)。我通常得到相当低的 r2 值(大约 0.3),这可能是由于特征值的分散,而不是我真正的问题。
最初,我有大约 100 个特征,我试图使用 RFE 和 LinearRegression() 作为估算器来减少这些特征。交叉验证表明,我应该将我的特征减少到只有 60 个特征。但是,当我这样做时,对于某些模型,R2 值 增加 。这怎么可能?我的印象是,向模型中添加变量总是会增加 R2,因此减少变量数量会导致 R2 值降低。
谁能对此发表评论或提供解释?

提前致谢。

这取决于您是使用testing还是training数据来测量R2。这是衡量模型捕获的数据方差的大小。因此,如果你增加预测变量的数量,那么你是正确的,因为你可以更好地准确预测训练数据所在的位置,因此你的 R2 应该增加(相反,减少预测变量的数量是正确的)。

但是,如果您过多地增加预测变量的数量,您可以 overfit 训练数据。这意味着模型的方差实际上人为地高,因此您对测试集的预测将开始受到影响。因此,通过减少预测变量的数量,您实际上可以更好地预测 test set 数据,因此您的 R2 应该增加。