在聚类算法的应用方面,例如,在获得实际类和预测类的每个组合的计数的列联表后,
1 2 3
A 2 3 15
B 20 1 4
C 0 32 1
如何编写一个函数来获取混淆矩阵,通过更改列的顺序来最大化对角线?谢谢!
1 2 3
A 15 2 3
B 4 20 1
C 1 0 32
最佳答案
我们可以使用 max.col
获取每行最大值的列索引,并使用它来重新排列列
m2 <- m1[,max.col(m1, 'first')]
colnames(m2) <- seq_len(ncol(m2))
m2
# 1 2 3
#A 15 2 3
#B 4 20 1
#C 1 0 32
数据
m1 <- structure(c(2L, 20L, 0L, 3L, 1L, 32L, 15L, 4L, 1L), .Dim = c(3L,
3L), .Dimnames = list(c("A", "B", "C"), c("1", "2", "3")))
关于r - 如何在 R 中对列联表重新排序以形成混淆矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61281625/