【发布时间】:2019-03-03 12:04:24
【问题描述】:
做聚类后,找到的标签是没有意义的。可以计算一个列联表,看看哪些标签与原始类别最相关,如果有可用的基本事实。
我想自动排列列联表的列以最大化其对角线。例如:
# Ground-truth labels
c1 = c(1,1,1,1,1,2,2,2,3,3,3,3,3,3,3)
# Labels found
c2 = c(3,3,3,3,1,1,1,1,2,2,2,3,2,2,1)
# Labels found but renamed correctly
c3 = c(1,1,1,1,2,2,2,2,3,3,3,1,3,3,2)
# Current output
tab1 <- table(c1,c2)
# c2
#c1 1 2 3
# 1 1 0 4
# 2 3 0 0
# 3 1 5 1
# Desired output
tab2 <- table(c1,c3)
# c3
#c1 1 2 3
# 1 4 1 0
# 2 0 3 0
# 3 1 1 5
实际上,c3 不可用。有没有从c2、tab1获取c3、tab2的简单方法?
【问题讨论】:
-
这个问题已经被问过很多次了。答案是匈牙利算法。
-
@Anony-Mousse 你有什么例子可以提供吗?我用谷歌搜索了“匈牙利算法应急”,但似乎没有出现任何相关内容。
-
排除意外,你会找到维基百科。
标签: r matrix cluster-analysis crosstab contingency