在sklearn中有一个函数sklearn.metrics.r2_score(y_true, y_pred)
,我可以给它两个数组并计算r ^ 2。 R中有类似的东西吗?我发现了一些功能,但它们仅适用于GLM。我有一个来自KNN回归的测试集和测试预测,我想计算r ^ 2。我是否需要手动编码?
答案 0 :(得分:0)
这不是显而易见的事,但caret
包有一个函数postResample()
,它将计算"性能估计的向量"根据{{3}}(非常有用的文档)。 "性能评估"是
并且必须从像这样的矢量访问
library(caret)
vect1 <- c(1, 2, 3)
vect2 <- c(3, 2, 2)
res <- caret::postResample(vect1, vect2)
rsq <- res[2]
然而,这是使用r平方的相关平方近似。为什么他们没有使用传统的1-SSE / SST超出了我的范围。
实现正常documentation的方法是:
preds <- c(1, 2, 3)
actual <- c(2, 2, 4)
rss <- sum((preds - actual) ^ 2)
tss <- sum((actual - mean(actual)) ^ 2)
rsq <- 1 - rss/tss