Как указать расстояние метрика, а для kmeans в R?

Я выполняю кластеризацию kmeans в R с двумя требованиями:

  1. Мне нужно указать мою собственную функцию расстояния, теперь это коэффициент Пирсона.

  2. Я хочу выполнить кластеризацию, в которой в качестве центроидов используется среднее значение членов группы, а не какой-то фактический член. Причина этого требования в том, что я думаю, что использование среднего в качестве центроида имеет больше смысла, чем использование фактического члена, поскольку члены всегда не близки к реальному центроиду. Пожалуйста, поправьте меня, если я ошибаюсь.

Сначала я попробовал функцию kmeans в пакете stat , но эта функция не поддерживает пользовательский метод расстояния.

Затем я нашел функцию pam в пакете cluster . Функция pam действительно позволяет настраивать метрику расстояния, принимая объект dist в качестве параметра, но мне кажется, что при этом фактические члены принимаются в качестве центроидов, чего я не ожидал. . Поскольку я не думаю, что он может выполнять все вычисления расстояний только с помощью матрицы расстояний.

Так есть ли в R какой-нибудь простой способ выполнить кластеризацию kmeans, удовлетворяющий обоим моим требованиям?

14
задан Amro 2 July 2012 в 17:45
поделиться