Я группирую строки матрицы NxM
, используя kmeans
.
clustIdx = kmeans(data, N_CLUST, 'EmptyAction', 'drop');
Затем я перестраиваю строки моей матрицы так, чтобы соседние строки находились в одном кластере.
dataClustered = data(clustIdx,:);
Однако каждый раз, когда я запускаю кластерный анализ, я получаю более или менее одни и те же кластеры, но с разными идентификаторами. Таким образом, структура в dataClustered
выглядит одинаково после каждой итерации, но группы находятся в разном порядке.
Я хотел бы переупорядочить идентификаторы кластеров таким образом, чтобы более низкие идентификаторы кластеров представляли плотные кластеры, а более высокие числа - разреженные кластеры.
Есть ли простой и/или интуитивно понятный способ сделать это?
т.е. Перерабатывать
clustIdx = [1 2 3 2 3 2 4 4 4 4];
to
clustIdx = [4 2 3 2 3 2 1 1 1 1]
Сами тождества произвольны, информация содержится в группировке.