Простой простой алгоритм кластеризации - PullRequest
0 голосов
/ 17 апреля 2020

Что такое хороший алгоритм кластеризации, который просто помещает два элемента данных в один кластер, если их разделение меньше некоторого определенного пользователем среза?

, т. Е. Результат X_clustering(data, distance, epsilon) представляет собой набор назначений кластера, таких как что для любой пары i,j они находятся в одном кластере, если distance(data[i], data[j]) < epsilon. Если distance(data[i], data[j]) >= epsilon, они могут быть в разных кластерах (если нет других данных, которые в итоге связывают их ...).

Другой способ указать это: i,j находятся в одном кластере, если через данные существует путь [i, x, y, z..., j], так что каждый шаг имеет distance<epsilon, и они находятся в разных кластерах, если такой путь не существует.

1 Ответ

1 голос
/ 17 апреля 2020

Ваша идея не работает. Если для всех пар (data[i], data[j]) в кластере их расстояние меньше заданного epsilon, это означает, что все члены этого кластера расположены в круге с радиусом epsilon. Следовательно, этот метод кластеризации не может быть обобщен.

Кстати, DBSCAN является хорошим алгоритмом кластеризации в случае определения кластеров на основе их плотности с заданной epsilon. Вы можете изменить этот алгоритм, добавив более жесткое ограничение, так что:

все данные могут быть добавлены в кластер, если их расстояние до всех членов кластера меньше заданного epsilon.

...