Интерпретация результата кластеризации k-средних в R

12

Я использовал kmeansинструкцию R для выполнения алгоритма k-средних в наборе данных радужной оболочки глаза Андерсона. У меня есть вопрос о некоторых параметрах, которые я получил. Результаты:

Cluster means:
  Sepal.Length Sepal.Width Petal.Length Petal.Width
1     5.006000    3.428000     1.462000    0.246000

В этом случае, что означает «Кластер означает»? Это среднее расстояние всех объектов в кластере?

Также в последней части у меня есть:

Within cluster sum of squares by cluster:
[1] 15.15100 39.82097 23.87947
 (between_SS / total_SS =  88.4 %)

Это значение 88,4%, каково его толкование?

Джеймс
источник
4
Пожалуйста , не пересекайте почту! stackoverflow.com/q/14524818/429846
Восстановить Монику - Дж. Симпсон
Нет, это просто среднее значение всех объектов внутри первого кластера (всего 3). Вы можете получить 88,4% от iris.km $ Междуss / iris.km $ totss
dfhgfh
Прочитайте любую статью о k-means . Тогда должно быть очевидно, что означают кластеры ... K-средства не основаны на расстоянии . Это сводит к минимуму отклонения ака: «сумма квадратов отклонений».
ВЫЙТИ - Anony-Mousse
Предположим, что ваше среднее значение равно 0. Сделайте математику. Проверьте, если приведенное выше предположение имеет значение. Жить счастливо после этого. Прибыль!
Мия

Ответы:

23

Если вы вычислите сумму квадратов расстояний каждой точки данных для среднего значения выборки, вы получите total_SS. Если вместо вычисления среднего выборочного среднего (или «центроида») вы вычисляете по одному на группу (здесь есть три группы), а затем вычисляете сумму квадратов расстояний этих трех средних и глобального среднего, вы получите between_SS. (При вычислении этого значения вы умножаете квадрат расстояния каждого среднего значения до глобального среднего на количество точек данных, которые оно представляет.)

Если бы не было заметного паттерна кластеризации, три средних из трех групп были бы близки к глобальному среднему значению и between_SSсоставляли бы очень небольшую долю total_SS. Здесь верно обратное, что показывает, что точки данных группируются довольно аккуратно в четырехмерном пространстве в зависимости от вида.

Ф. Туселл
источник
14

K-означает не алгоритм кластеризации на основе расстояния .

K-означает поиск минимальной суммы назначения квадратов , то есть он минимизирует ненормализованную дисперсию (= total_SS), назначая точки центрам кластеров.

Для того чтобы k-средства сходились, вам нужны два условия:

  • переназначение точек уменьшает сумму квадратов
  • пересчет среднего уменьшает сумму квадратов

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

Всякий раз, когда вы намереваетесь изменить функции присваивания, вы рискуете сделать так, чтобы алгоритм больше не прерывался, как собака, преследующая свой собственный хвост. По сути, оба шага должны согласовать целевую функцию. Мы знаем, что среднее арифметическое является оптимальным выбором по сумме квадратов . И для первого шага мы можем просто вычислить для каждого среднего и выбрать тот, который минимален. Технически здесь нет вычисления расстояния . Математически назначение по наименьшей сумме квадратов равно назначению по евклидову расстоянию с замкнутым квадратом, которое (если вы тратите циклы ЦП на вычисления ) равно минимальному евклидовому расстоянию. Итак, интуиция jΣя(Икся-μJя)2Jsqrt назначение каждой точки ближайшему среднему является правильным, но не то, что делает проблема оптимизации.

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

Обратите внимание, что с помощью k-средних вы можете улучшить качество наивной кластеризации, увеличив k. Измеренное здесь качество является математическим значением, которое может не соответствовать требованиям пользователей. Радужная оболочка на самом деле является довольно хорошим примером, где k-means часто сходится к менее чем удовлетворительным результатам, даже учитывая внешнюю информацию, что должно быть ровно 3 кластера.

Если вы хотите основанное на расстоянии изменение k-средних , посмотрите на k-medoids . Здесь сходимость обеспечивается путем замены среднего значения на медоид:

  • Каждый объект назначается ближайшему кластеру (по произвольной дистанции)
  • Центр кластера обновляется до самого центрального объекта кластера, то есть с наименьшим средним расстоянием до всех остальных.

На каждом шаге сумма расстояний уменьшается; существует конечное число комбинаций, поэтому алгоритм должен завершаться на некотором локальном минимуме.

ВЫЙТИ - Anony-Mousse
источник
Интересный момент +1
Cam.Davidson.Pilon
1
Почему здесь нет вычисления расстояния (в kmeans)? Для того, чтобы рассчитать дисперсию, необходимо рассчитать расстояние каждого элемента до среднего, так что, очевидно, что это касается расчета расстояния, не так ли?
Джулиан
Дисперсия обычно определяется не с точки зрения расстояния, а как «ожидаемое значение квадрата отклонения от среднего».
Выйти - Anony-Mousse