【问题标题】:Why does R2-value increase after feature-reduction with RFE?为什么使用 RFE 减少特征后 R2 值会增加?
【发布时间】:2020-08-31 14:19:48
【问题描述】:

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

提前致谢。

【问题讨论】:

    标签: python regression feature-selection


    【解决方案1】:

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

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

    【讨论】:

    • 我确实使用我的训练集来减少特征并训练模型,而它是在测试集上测试的。对于更高 R2 值的可能解释,我没有考虑到训练/测试拆分,所以谢谢你让我回到正轨。
    • 没问题:)。很高兴我能帮上忙!
    猜你喜欢
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 2023-04-08
    • 2021-11-21
    • 2018-05-10
    • 1970-01-01
    相关资源
    最近更新 更多