Проблема: Мне кажется, что фундаментальное свойство метода кластеризации c()
заключается в том, можем ли мы объединить результаты c(A)
и c(B)
с помощью некоторой функции f()
двух кластеризаций втаким образом, нам не нужно снова применять полную кластеризацию c(A+B)
, а вместо этого делать f(c(A),c(B))
и все равно в итоге получить тот же результат:
c(A+B) == f(c(A),c(B))
Я полагаю, что необходимое условие для некоторого c()
иметь это свойство в том, что оно детерминировано , то есть порядок его внутренней обработки не имеет значения для результата.Однако этого может быть недостаточно.
Было бы очень неплохо иметь некоторую справку о том, где искать, какие кластерные методы поддерживают это и как выглядит хороший f()
в соответствующем случае.
Пример: В данный момент я думаю о DBSCAN, который должен быть детерминированным, если я позволю пограничным точкам одновременно принадлежать нескольким кластерам (без их подключения):
- Одна точка достижима из другой точки, если она находится в ее окрестности eps
- Точка ядра - это точка, по крайней мере, достижимая minPts
- edge проходит от каждой базовой точки ко всем достижимым точкам
- Каждая точка с входящей ребром из базовой точки находится в том же кластере, что и последняя
ЕслиВы пропускаете точки шума, а затем предполагаете, что каждый базовый узел достигает себя (рефлексивность), и после этого мы определяем точки шума как кластеры первого размера.Границы являются неосновными точками.Впоследствии, если мы хотим разделить, мы можем произвольно назначить граничные точки, которые находятся в нескольких кластерах, одному из них.Я не считаю это актуальным для самого метода.