如何使用scikit计算调整后的R2值

Mos*_*man 6 python regression scikit-learn

我有一个数据集,我必须为此开发各种模型并计算所有模型的调整后的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
Run Code Online (Sandbox Code Playgroud)

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

感谢您的帮助。

min*_*bro 10

您可以使用此处给出的简单公式根据R2计算调整后的R2 。

Adj r2 = 1-(1-R2)*(n-1)/(n-p-1)
Run Code Online (Sandbox Code Playgroud)

调整后的R2也需要一定数量的自变量。这就是为什么将不使用此函数进行计算的原因。

  • 谢谢,所以我假设 n = 样本数量,p = 自变量数 (3认同)
  • 当我们要在交叉验证期间为每个折叠计算调整后的R2时,“ n”会对应于数据集的大小还是折叠的大小?(例如,如果我们执行5倍CV,则占行数的80%)@ min2bro (2认同)
  • @nvergos n 应对应于折叠的大小。 (2认同)