gpt4 book ai didi

r - 按组计算准确度

转载 作者:行者123 更新时间:2023-12-04 00:38:46 24 4
gpt4 key购买 nike

我有一个如下所示的数据框:

df<- data.frame("iteration" = c(1,1,1,1,1,1), 
"model" = c("RF","RF","RF","SVM", "SVM","SVM"),
"label" = c(0,0,1,0,0,1), "prediction" = c(0,1,1,0,1,1))

iteration model label prediction
1 1 RF 0 0
2 1 RF 0 1
3 1 RF 1 1
4 1 SVM 0 0
5 1 SVM 0 1
6 1 SVM 1 1

实际上,它有 10 次迭代,更多模型和每个模型的更多数据。

我想做的基本上是获得每个模型的准确性。

所以基本上我想将其应用于每个模型组(RF、SVM):

table(df$label,df$prediction)

0 1
0 2 2
1 0 2

他们将对角线求和并除以总数:

sum(diag(table(df$label,df$prediction)))/sum(table(df$label,df$prediction))
[1] 0.6666667

在这种情况下我可以使用 tapply 还是 dplyr 派上用场?

我在这里迷路了。

最佳答案

尝试:

library(dplyr)

df %>%
group_by(iteration, model) %>%
summarise(accuracy = sum(label == prediction) / n())

给出:

#Source: local data frame [2 x 3]
#Groups: iteration [?]
#
# iteration model accuracy
# (dbl) (fctr) (dbl)
#1 1 RF 0.6666667
#2 1 SVM 0.6666667

想法是对label == prediction返回TRUE的次数求和,然后除以分区的大小n()

关于r - 按组计算准确度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37220541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com