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

问题描述

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

谢谢。

解决方法

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...