Я делаю кластеризацию kmeans в R с двумя требованиями:
Мне нужно указать свою собственную функцию расстояния, теперь это коэффициент Пирсона.
Я хочу выполнить кластеризацию, в которой в качестве центроидов используется среднее значение членов группы, а не какой-то фактический член. Причина этого требования в том, что я думаю, что использование среднего в качестве центроида имеет больше смысла, чем использование фактического члена, поскольку члены всегда не близки к реальному центроиду. Пожалуйста, поправьте меня, если я ошибаюсь в этом.
Сначала я попробовал функцию kmeans
в пакете stat
, но эта функция не поддерживает пользовательский метод расстояния.
Затем я нашел функцию pam
в пакете cluster
. Функция pam
позволяет настраивать метрику расстояния, принимая объект dist
в качестве параметра, но мне кажется, что при этом она принимает фактические элементы в качестве центроидов, чего я не ожидаю. Поскольку я не думаю, что он может выполнять все вычисления расстояний только с помощью матрицы расстояний.
Итак, есть ли какой-нибудь простой способ в R выполнить кластеризацию kmeans, которая удовлетворяет обоим моим требованиям?
vegan::designdist
для создания собственного индекса (также см.vegan::vegdist
, если он уже существует). После того, как у вас есть объектdist
, вы можете использоватьhclust
в пакете статистики, чтобы использовать подходящий метод агрегирования. - person Roman Luštrik   schedule 23.09.2011