Я использовал 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%, каково его толкование?
Ответы:
Если вы вычислите сумму квадратов расстояний каждой точки данных для среднего значения выборки, вы получите
total_SS
. Если вместо вычисления среднего выборочного среднего (или «центроида») вы вычисляете по одному на группу (здесь есть три группы), а затем вычисляете сумму квадратов расстояний этих трех средних и глобального среднего, вы получитеbetween_SS
. (При вычислении этого значения вы умножаете квадрат расстояния каждого среднего значения до глобального среднего на количество точек данных, которые оно представляет.)Если бы не было заметного паттерна кластеризации, три средних из трех групп были бы близки к глобальному среднему значению и
between_SS
составляли бы очень небольшую долюtotal_SS
. Здесь верно обратное, что показывает, что точки данных группируются довольно аккуратно в четырехмерном пространстве в зависимости от вида.источник
K-означает не алгоритм кластеризации на основе расстояния .
K-означает поиск минимальной суммы назначения квадратов , то есть он минимизирует ненормализованную дисперсию (=
total_SS
), назначая точки центрам кластеров.Для того чтобы k-средства сходились, вам нужны два условия:
Поскольку существует только конечное число комбинаций, вы не можете бесконечно уменьшать это значение, и алгоритм должен в какой-то момент сходиться к локальному оптимуму.
Всякий раз, когда вы намереваетесь изменить функции присваивания, вы рискуете сделать так, чтобы алгоритм больше не прерывался, как собака, преследующая свой собственный хвост. По сути, оба шага должны согласовать целевую функцию. Мы знаем, что среднее арифметическое является оптимальным выбором по сумме квадратов . И для первого шага мы можем просто вычислить для каждого среднего и выбрать тот, который минимален. Технически здесь нет вычисления расстояния . Математически назначение по наименьшей сумме квадратов равно назначению по евклидову расстоянию с замкнутым квадратом, которое (если вы тратите циклы ЦП на вычисления ) равно минимальному евклидовому расстоянию. Итак, интуиция jΣя( хя- μJ я)2 J
sqrt
назначение каждой точки ближайшему среднему является правильным, но не то, что делает проблема оптимизации.between_SS
Вероятно, это взвешенная сумма квадратов между двумя средними, чтобы измерить, насколько хорошо центры кластеров разделены (примечание: центры кластеров не сравнивают фактические кластеры - технически, кластерная ячейка Вороного касается соседних кластерных ячеек Вороной).Обратите внимание, что с помощью k-средних вы можете улучшить качество наивной кластеризации, увеличив k. Измеренное здесь качество является математическим значением, которое может не соответствовать требованиям пользователей. Радужная оболочка на самом деле является довольно хорошим примером, где k-means часто сходится к менее чем удовлетворительным результатам, даже учитывая внешнюю информацию, что должно быть ровно 3 кластера.
Если вы хотите основанное на расстоянии изменение k-средних , посмотрите на k-medoids . Здесь сходимость обеспечивается путем замены среднего значения на медоид:
На каждом шаге сумма расстояний уменьшается; существует конечное число комбинаций, поэтому алгоритм должен завершаться на некотором локальном минимуме.
источник