После выполнения кластеризации найденные метки не имеют смысла.Можно вычислить таблицу сопряженности, чтобы увидеть, какие метки больше всего связаны с исходными классами, если доступна базовая истина.
Я хочу автоматически переставить столбцы таблицы сопряженности, чтобы максимизировать ее диагональ.Например:
# 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
недоступно.Есть ли простой способ получить c3
, tab2
из c2
, tab1
?