从下面的训练输出中,看起来 R 平方不是由传统公式 1 - SSE/SST 计算的,因为较低的错误率具有较低的 R 平方。那么它是如何计算的呢?
colsample_bytree min_child_weight RMSE Rsquared
0.4 3 16963.39 0.8799191
0.4 5 16813.24 0.8788395
从下面的训练输出中,看起来 R 平方不是由传统公式 1 - SSE/SST 计算的,因为较低的错误率具有较低的 R 平方。那么它是如何计算的呢?
colsample_bytree min_child_weight RMSE Rsquared
0.4 3 16963.39 0.8799191
0.4 5 16813.24 0.8788395
代码在这里:
> R2
function(pred, obs, formula = "corr", na.rm = FALSE) {
n <- sum(complete.cases(pred))
switch(formula,
corr = cor(obs, pred, use = ifelse(na.rm, "complete.obs", "everything"))^2,
traditional = 1 - (sum((obs-pred)^2, na.rm = na.rm)/((n-1)*var(obs, na.rm = na.rm))))
}
它遵循计算R然后平方的想法。有很多公式R^2可以使用。见克瓦尔塞斯。关于 R^2 的注意事项。美国统计学家 (1985) 卷。39 (4) 第 279-285 页。所有这些都在 中进行了描述?R2。