2. План лекции
● Иерархические алгоритмы
● Алгоритм ближайшего соседа
● Откуда мерить соседство
● Неиерархические алгоритмы
● Итеративные алгоритмы
● Плотностные алгоритмы
Цель лекции — получить представление об
основных подходах в кластеризации
2
3. Иерархические алгоритмы
● Строят иерархию кластеров
● Дивизимные
● Агломеративные
● Отображать на дендрограмме результат
● Кластеры в любой момент — срез
дендрограммы
3
4. Алгоритм ближайшего
соседа
● Агломеративный
● Строит таблицу попарного расстояния
между кластеров
● Выбирает на каждом шаге самый малый
элемент из этой таблицы и сливает эту пару
в единый кластер
● Перестраивает таблицу расстояния
4
5. Откуда мерить
● От ближнего соседа
● От дальнего соседа
● От среднего соседа
● И т.п.
5
6. Откуда мерить
● От ближнего соседа
● От дальнего соседа
● От среднего соседа
● Приведите свой вариант?
6
7. Применение
● Когда надо достигнуть определенного порога
кластеризации
● Когда надо отследить весь путь
кластеризации
7
8. Неиерархические
алгоритмы
● Используют различные приемы или
«хитрости» для выявления кластеров
● Обычно создаются для каких-то конкретных
задач
● Отражают различные подходы к созданию
алгоритмов кластеризации
● И различные задачи, которые с их помощью
решаются
8
9. Итеративные алгоритмы
● Основа — итеративное приближение к
идеальному разбиению
● Похожи на иерархические, но нельзя
построить иерархию кластеров
9
10. Алгоритм k-means
● Минимизируем расстояние между
объектами в кластерах
● Основная идея — кластер имеет некий
центр, который его идеально характеризует,
и расстояние именно до него от объектов
стоит минимизировать
10
11. Алгоритм k-means:
итерация
● Вычисление расстояния от объекта до
центроидов
● Выбор минимального из них
● Отнесение объекта к соответствующему
кластеру
● Для всех объектов
● А затем нахождение новых центроидов для
всех кластеров
● И так пока новые центроиды не будут равны11
старым
12. Алгоритм k-means:
применение
● Кластеры получаются сферообразными
● Что, в общем, для группы нормально
● Достаточно удобно характеризовать кластер
по центру
● И достаточно быстрый алгоритм
● Но зависит от изначального выбора
центроидов
● И может давать неоптимальные результаты
● И требует число кластеров на вход 12
13. Плотностные алгоритмы
● Основная идея — группы объектов
достаточно плотные — то есть можно в
группу добавлять все точки в «окрестности»
объекта
13
14. Алгоритм DBSCAN
● Чаще всего выполняется над специально
предварительно упорядоченными данными
● На входе требуется определение, что мы
считаем «плотным расположением»
● Начинаем с любого объекта
● Проверяем его на наличие в «окрестностях»
других объектов
● Если нет — то это не кластер, а шум
14
15. Алгоритм DBSCAN. Ход
алгоритма
● Если же есть, то это кластер
● Заносим в кластер этот объект, а его
«окрестные» объекты — в спецмассив
● Далее берем объекты из этого спецмассива
по очереди, заносим их в кластер, а их
окрестности — в спецмассив
● Пока спецмассив не опустеет
● Далее ищем новый корень кластера
15
16. Алгоритм DBSCAN.
Применение
● Кластеры получаются сложной формы
● Но через «тонкие» мостики кластеры не
соединяются
● Поэтому может быть несколько похожих
кластеров
● Характеризовать достаточно сложно — надо
просматривать различные графики для
кластера
16