如何通过比较两种算法的预测结果来制作混淆矩阵?

时间:2015-03-03 09:20:08

标签: r confusion-matrix

我将两个无监督算法应用于相同的数据,并希望从结果中产生一个混淆矩阵,我应该如何在 R 中实现它?

R代码的示例如下:

xx.1 <- c(41, 0, 4, 0, 0, 0, 0, 0, 0, 7, 0, 11, 8, 0, 0, 0, 0, 0, 3, 0, 0, 1, 1, 0, 4)
xx.2 <- matrix(xx.1, nrow = 5)
rownames(xx.2) <- paste("Algo1", 1:5, sep = "_")
colnames(xx.2) <- paste("Algo2", 1:5, sep = "_")
xx.2

xx.2是两种算法的预测结果,数字显示有多少观察被归类为Algo1_X和Algo2_X:

       Algo2_1 Algo2_2 Algo2_3 Algo2_4 Algo2_5
Algo1_1      41       0       0       0       0
Algo1_2       0       0      11       0       1
Algo1_3       4       0       8       0       1
Algo1_4       0       0       0       3       0
Algo1_5       0       7       0       0       4

问题是,如何使用Algo1的结果作为参考来重新排列矩阵以获得混淆矩阵?有两个问题:

  1. 确定两种算法之间的对应关系,即我认为最相似的分类应该配对的方法;

  2. 重新排列矩阵,使对话框的交叉值最大。

  3. 此处,Algo2_1和Algo1_1具有最大的交叉值,它们是一对;然后Algo1_2和Algo2_3应该是一对,因为它们在左列/行中具有第二大值,因此Algo2_3应该移动到第二列。

    我怎么能在R中轻松完成?或者有可用于此目的的包裹?

    谢谢!

0 个答案:

没有答案