Кластеризация или естественная классификация это процесс объединение в группы объектов, обладающих схожими признаками. В отличие от обычной классификации, где количество групп объектов фиксировано и заранее определено набором идеалов, здесь группы заранее не определены и формируются в процессе работы системы исходя из определённой меры близости объектов.
В этой статье мы рассмотрим методы анализа данных, которые называются иерархической кластеризацией. Общая идея этих методов - последовательное объединение наиболее близких к друг другу групп объектов разбитое на несколько шагов. Таким образом в результате мы получаем историю объединений групп в виде дерева, которое называется дендрограммой.
Рассмотрим набор точек X в n-мерном пространстве признаков с заданной на нём метрикой.
| (1) |
Для реализации метода иерархической кластеризации нам понадобиться способ оценивать расстояния между множествами точек. Есть разные варианты:
и другие способы.
Будем использовать расстояние Уорда [1] для определения расстояния между множествами точек W и S
и формулу Ланса-Уильямса[1] для определения расстояния между объединением множеств точек W = U ∪ V и множеством точек S
| (2) |
где
Базовый алгоритм иерархической кластеризации выглядит следующим образом.
Для регулирования глубины дендрограммы (дерева истории объединений кластеров) и улучшения результатов кластеризации можно ввести порог расстояний δ. Алгоритм модифицируется следующим образом.
В этом примере был обработан набор из 360 точек, количество слоёв дендрограммы равно 67. На рисунках ниже приведены часть дендрограммы и соответствующие ей промежуточные результаты работы иерархического кластеризатора.
Рис.1: верхушка дерева дендрограммы | |
Рис.2: результат кластеризации - 5 кластеров | Рис.3: результат кластеризации - 4 кластера |
Рис.4: результат кластеризации - 3 кластера | Рис.5: результат кластеризации - 2 кластера |