r - 如何在 R 中对列联表重新排序以形成混淆矩阵

标签 r function confusion-matrix

在聚类算法的应用方面,例如,在获得实际类和预测类的每个组合的计数的列联表后,

  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/

相关文章:

r - 传说在北卡罗来纳州地理 map 上消失?

r - 如果为 TRUE,则变量名称

r - R 中的 Azure PUT Blob 身份验证失败

machine-learning - Weka 中与 'confusion matrix' 的混淆

python - 如何使 sklearn.metrics.confusion_matrix() 始终返回 TP、TN、FP、FN?

r - gvisMerge + gvisAnnotatedTimeLine 通用 RangeSelector

r - 疯狂地尝试编写一个对数据框的一列进行操作的简单函数

android - 解释这个Kotlin函数结构

javascript - 在 JavaScript 中构建基本计算器 - 第一次工作但在循环中我收到 "___ is not a function"错误

python - 机器学习: Getting error in Confusion Matrix