Алгоритм CURECURE (англ. Clustering Using Representatives, кластеризация с использованием представителей) является эффективным алгоритмом кластерного анализа для больших баз данных. По сравнению с методом k-средних алгоритм более устойчив к выбросам и способен выявить кластеры, не имеющие сферической формы и с большим разбросом размеров. Недостатки традиционных алгоритмовПопулярный алгоритм метод k-средних минимизирует сумму квадратов ошибок[англ.]: Если имеется большая разница в размерах или геометрии различных кластеров, метод квадратичной ошибки может разбить большие кластеры для минимизации квадрата ошибки, что не всегда правильно. Также в случае алгоритмов иерархической кластеризации эта проблема присутствует, так как никакая из мер расстояний между кластерами () не стремится работать с различными формами кластеров. Также, время работы большое, если n большое. Проблема с алгоритмом BIRCH заключается в том, что при генерации кластеров после шага 3 алгоритм использует центр тяжести кластеров и назначает каждую единицу информации[англ.] кластеру с ближайшим центром тяжести. Использование только центров тяжести для перераспределения точек имеет проблему, если кластеры не образуют однородные размеры и формы. Алгоритм кластеризации CUREЧтобы избежать проблем с неоднородными размерами или формами кластеров, CURE использует алгоритм иерархической кластеризации, который принимает компромиссное решение[англ.] между центром тяжести и всеми крайностями. В алгоритме CURE выбирается постоянная c точек кластера с хорошим распределением и эти точки стягиваются к центру тяжести кластера на некоторое значение. Точки после стягивания используются как представители кластера. Кластеры с ближайшей парой представителей объединяются на каждом шаге алгоритма иерархической кластеризации CURE. Это даёт возможность алгоритму CURE правильно распознавать кластеры и делает его менее чувствительным к выбросам. Время работы равно O(n2 log n), что делает его скорее затратным, а пространственная сложность алгоритма равна O(n). Алгоритм нельзя применить прямо к большой базе данных ввиду большой сложности вычислений. Следующие улучшения направлены на решение этой проблемы.
ПсевдокодCURE (число точек, k) Вход : Множество точек S Выход : k кластеров
Доступность
См. такжеПримечанияЛитература
|