k означает алгоритм кластеризации

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

1) Выберите набор начальных центров из k кластеров. [Я произвольно выбрал два начальных центра]

2) Назначьте каждый объект кластеру с ближайшим центром. [Я использовал коэффициент корреляции Пирсона в качестве показателя расстояния - см. Ниже]

Теперь мне нужна помощь в понимании 3-го шага алгоритма:

3) Вычислите новые центры кластеров:

формула для нового центра condition

где X, в данном случае - 4-мерный вектор, а n - количество точек данных в кластере.

Как я могу рассчитать C (S), скажем, для следующих данных?

# Cluster 1
A   10  15  20  25  # randomly chosen centre
B   21  33  21  23
C   43  14  23  23
D   37  45  43  49
E   40  43  32  32

# Cluster 2
F  100  102 143 212 #random chosen centre
G  303  213 212 302
H  102  329 203 212
I  32   201 430 48
J  60   99  87  34

Последним шагом алгоритма k средних является повторение шагов 2 и 3 до тех пор, пока ни один объект не изменит кластер, что достаточно просто.

Мне нужна помощь с шагом 3. Вычисление новых центров кластеров. Если бы кто-нибудь мог пройти и объяснить, как вычислить новый центр только одного из кластеров, это очень помогло бы мне.


person cooldood3490    schedule 24.03.2013    source источник
comment
почему бы не опубликовать этот вопрос здесь, stats.stackexchange.com   -  person gongzhitaao    schedule 25.03.2013
comment
спасибо за ссылку. У меня пока недостаточно репутации, чтобы размещать там фотографии в своих вопросах. Также я не умею набирать формулы в вопросы.   -  person cooldood3490    schedule 25.03.2013


Ответы (3)


Шаг 3 соответствует вычислению среднего для каждого кластера. Для кластера 1 вы получите новый центр кластера (B+C+D+E) / 4, который равен (35.25 33.75 29.75 21.75), то есть суммируйте каждый компонент для всех точек в кластере отдельно и разделите его на количество точек в кластере.

Центр кластера (A для кластера 1) обычно не является частью расчета нового центра кластера.

person mrueg    schedule 24.03.2013
comment
Хорошо, я думаю, что понимаю, но разве (B+C+D+E) / 4 на самом деле (24.5 25.75 43.5 36.75)? - person cooldood3490; 25.03.2013
comment
Это неправильно (как и моя оригинальная версия, которая не исправлена). например, для первого компонента у вас будет (21 + 43 + 37 + 40) / 4 = 35,25 - person mrueg; 25.03.2013
comment
Второй компонент (B+C+D+E) / 4 равен (33+14+45+43)/4, то есть суммируйте, возьмите вторые компоненты B, C, D, E и разделите их на 4. - person mrueg; 25.03.2013
comment
Вы должны включить предыдущий центроид как часть вычисления нового центроида. - person stackoverflowuser2010; 25.03.2013
comment
Если вы используете k центроидов, вам, безусловно, следует. Однако k-means - похожий, но не тот же алгоритм. - person mrueg; 26.03.2013
comment
@mrueg Это неверно. Вы думаете о k-medoids. Нет k-центроида; это то же самое, что и k-средство. Вы даете неверную информацию. - person stackoverflowuser2010; 06.04.2013
comment
Ты прав. Это называется k-medoids. Виноват. Тем не менее, k означает, что не включает предыдущий центроид при вычислении нового. (Алгоритм в основном будет работать, но сходимость, вероятно, будет несколько медленнее.) - person mrueg; 11.04.2013
comment
@mrueg, если предыдущий центроид является точкой данных (A), то он включен. - person Has QUIT--Anony-Mousse; 09.09.2014

Не добавляйте другие функции расстояния к k-средним.

K-средство предназначено для минимизации "суммы квадратов", не расстояний! Минимизируя сумму квадратов, он одновременно минимизирует квадратное евдлидово и, следовательно, евклидово расстояние, но это может не выполняться для других расстояний, и, таким образом, K-средние могут перестать сходиться при использовании с произвольными функциями расстояния.

Опять же: k-means не минимизирует произвольные расстояния. Он сводит к минимуму «сумму квадратов», которая соответствует квадрату евклидова расстояния.

Если вам нужен алгоритм, который четко определен для произвольных функций расстояния, рассмотрите возможность использования k-medoids (Википедия), вариант k-средних. PAM гарантированно сходится с произвольными функциями расстояния.

person Has QUIT--Anony-Mousse    schedule 25.03.2013

Для каждого кластера с n-мерными точками вычислите n-мерный центр масс, чтобы получить центроид. В вашем примере есть 4-мерные точки, поэтому центр масс - это среднее значение по каждому из 4-х измерений. Для кластера 1 центроид равен: (30,20, 30,00, 27,80, 30,40). Например, среднее значение для первого измерения рассчитывается как (10 + 21 + 43 + 37 + 40) / 5 = 30,20.

Дополнительную информацию см. В статье Википедии о кластеризации K-средних.

person stackoverflowuser2010    schedule 25.03.2013