我想评估几个回归模型的性能并使用yardstick
包来计算 RMSE。这是一些示例数据
model obs pred
1 A 1 1
2 B 1 2
3 C 1 3
当我运行以下代码时
library(yardstick)
library(dplyr)
dat %>%
group_by(model) %>%
summarise(RMSE = yardstick::rmse(truth = obs, estimate = pred))
我收到以下错误
summarise_impl(.data, dots) 中的错误:没有适用于“rmse”的方法应用于“c('double','numeric')”类的对象。
但是,当我明确提供.
作为第一个参数时(我认为这不是必需的),我没有收到错误,但结果不正确。
dat %>%
group_by(model) %>%
summarise(RMSE = yardstick::rmse(., truth = obs, estimate = pred))
# A tibble: 3 x 2
model RMSE
<fctr> <dbl>
1 A 1.29
2 B 1.29
3 C 1.29
我期待以下
# A tibble: 3 x 2
model RMSE
<fctr> <dbl>
1 A 0
2 B 1.00
3 C 2.00
我知道这个功能有替代品,但我仍然不明白这种行为。
数据
dat <- structure(list(model = structure(1:3, .Label = c("A", "B", "C"), class = "factor"), obs = c(1, 1, 1), pred = 1:3), .Names = c("model", "obs", "pred"), row.names = c(NA, -3L), class = "data.frame")