Scipy кластеризация: какой метод использовать в fcluster для простой группировки? - PullRequest
0 голосов
/ 15 марта 2012

В модуле scipy кластеризации есть множество вариантов , и я хотел бы убедиться, что я правильно их использую.У меня есть симметричная матрица расстояний DR, и я хотел бы найти все кластеры так, чтобы любая точка в кластере имела соседа с расстоянием не более 1,2.

L = linkage(DR,method='single')
F = fcluster(L, 1.2)

В linkage я почти уверен, что single - это то, что я хочу (алгоритм ближайшей точки).Однако для fcluster я думаю Мне нужен метод по умолчанию, «несовместимый», метод:

«несогласованный»: если узел кластера и все его потомки имеют несовместимое значениеменьше или равно t, тогда все его потомки листьев принадлежат одному и тому же плоскому кластеру.Когда ни один не одноэлементный кластер не соответствует этому критерию, каждый узел назначается своему кластеру.(По умолчанию)

Но, возможно, это метод «расстояния»:

«расстояние»: формирует плоские скопления, так что исходные наблюдения в каждом плоском скоплении не имеют большеКопенетическое расстояние, чем т.

... Я не уверен.Какой использовать?Что в данном контексте означает копенетическое расстояние?

1 Ответ

1 голос
/ 13 ноября 2013

Возможно, вы захотите взглянуть на DBSCAN.Смотрите статью в Википедии об этом.Похоже, вы ищете выход DBSCAN с minPts = 1 и epsilon = 1.2

Это довольно просто реализовать, судя по псевдокоду в википедии, в частности, поскольку у вас уже есть матрица расстояний.Просто сделай это сам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...