Метод нечёткой кластеризации C-средних (англ. fuzzy clustering, soft k-means, c-means) позволяет разбить имеющееся множество элементов мощностью на заданное число нечётких множеств . Метод нечеткой кластеризации C-средних можно рассматривать как усовершенствованный метод k-средних, при котором для каждого элемента из рассматриваемого множества рассчитывается степень его принадлежности (англ. responsibility) каждому из кластеров.
Алгоритм был разработан J.C. Dunn в 1973[1] и улучшен J.C. Bezdek в 1981[2].
Алгоритм:
- Задать случайным образом центров кластеров ;
- Рассчитать матрицу принадлежности элементов к кластерам . В случае нормального распределения: , где — -й элемент множества, — центр кластера , — расстояние между точками и , — плотность вероятности нормального распределения в точке .
- Переместить центры кластеров ;
- Рассчитать функцию потерь (например, исходя из принципа максимального правдоподобия). В случае нормального распределения функция потерь будет равна: ;
- Если значение функции потерь уменьшается, то повторить цикл с п.2.
Метод нечеткой кластеризации C-средних имеет ограниченное применение из-за существенного недостатка — невозможность корректного разбиения на кластеры, в случае когда кластеры имеют различную дисперсию по различным размерностям (осям) элементов (например, кластер имеет форму эллипса). Данный недостаток устранен в алгоритмах Mixture models и GMM (Gaussian mixture models).
Ссылки