【问题标题】:How to calculated the adjusted R2 value using scikit如何使用 scikit 计算调整后的 R2 值
【发布时间】:2018-12-04 22:26:30
【问题描述】:

我有一个数据集,我必须为其开发各种模型并计算所有模型的调整后 R2 值。

    cv = KFold(n_splits=5,shuffle=True,random_state=45)
    r2 = make_scorer(r2_score)
    r2_val_score = cross_val_score(clf, x, y, cv=cv,scoring=r2)
    scores=[r2_val_score.mean()]
    return scores

我已经使用上面的代码来计算每个模型的 R2 值。 但我更想知道每个模型调整后的 R2 值 python中有没有可以完成这项工作的包?

感谢您的帮助。

【问题讨论】:

标签: python scikit-learn regression


【解决方案1】:

您可以使用给定here 的简单公式从 R2 计算调整后的 R2。

Adj r2 = 1-(1-R2)*(n-1)/(n-p-1)

调整后的 R2 也需要独立变量的数量。这就是为什么它不会使用这个函数来计算。

【讨论】:

  • 谢谢,所以我假设 n = 样本数量,p = 自变量数量
  • 当我们想在交叉验证的时候计算每个折叠的调整后的R2,n是对应数据集的大小还是折叠的大小? (例如,如果我们进行 5 倍 CV,则为 80% 的行数)@min2bro
  • @nvergos n 应该对应折叠的大小。
  • 如果我正在评估训练集或测试集,我应该使用训练集的np。或者如果我正在评估训练集,我应该使用np作为训练集,如果我正在评估测试集,则使用测试集np
  • @vasili111 我们在测试数据上检查模型性能,所以最好在测试数据上检查调整后的 r2 和 r2。
猜你喜欢
  • 2021-09-14
  • 2018-08-29
  • 2014-06-12
  • 2020-07-02
  • 2014-09-30
  • 1970-01-01
  • 1970-01-01
  • 2015-10-06
  • 1970-01-01
相关资源
最近更新 更多