240 likes | 495 Views
Анализ данных. Кластеризация. План лекции. Иерархические алгоритмы (пример: алгоритм ближайшего соседа) Итеративные алгоритмы (пример: k-means ) Плотностные алгоритмы (пример: DBSCAN ) Цель: Знакомство с основными алгоритмами кластеризации. Иерархические алгоритмы.
E N D
Анализ данных Кластеризация
План лекции • Иерархические алгоритмы (пример: алгоритм ближайшего соседа) • Итеративные алгоритмы (пример: k-means) • Плотностные алгоритмы (пример: DBSCAN) Цель: • Знакомство с основными алгоритмами кластеризации
Иерархические алгоритмы • Строят иерархию кластеров • Результаты: срез дендрограммы
Алгоритм ближайшего соседа Single-linkage clustering • Алгомеративный алгоритм • На каждом шаге объединяем наиболее близкие друг другу кластеры в один • Вычислительная сложность: O(n2)
Алгоритм ближайшего соседа Инициализация: • Каждый объект входит в единичный кластер Шаг алгоритма: • Вычисление матрицы попарной близости кластеров • Объединение наиболее близких кластеров • Проверка условий окончания кластеризации
Варианты метрик • Ближайший сосед - метод одиночной связи (single linkage) • Дальний сосед - метод полной связи (complete linkage) • Средний сосед - метод средней связи (pair-group method using arithmetic averages) • прочие метрики
Применениеиерархических алгоритмов • Составление таксономических иерархий (например: упорядочивание документов) • Поиск информативных срезов дендрограммы (поиск целевых групп)
Неиерархические алгоритмы • Часто разрабатываются под конкретную задачу или сферу применения • Вычислительная сложность варьируется • Популярные подвиды: • Итеративные • Плотностные • Модельные • Концептуальные
Итеративные алгоритмы • Основная идея: выполнение цикла кластеризации до устойчивого состояния или выполнения других условий выхода • Отличия от иерархических: • Нельзя построить дендрограмму • Неизвестно максимальное количество итераций • Увеличение количества итераций дает различный эффект
Алгоритм k-means • В ходе кластеризации нужно установить центроид так, чтобы все объекты кластера были на минимальной расстоянии от него, а остальные на большем.
Алгоритм k-means • Разделяем объекты на kкластеров • Вводим центроиды – характеризующие кластер (не обязательно реальные) объекты данных • Вычислительная сложность: O(nki), где i – количество итераций
Алгоритм k-means Инициализация: • Установить kцентроидов (хоть случайно) Шаг алгоритма: • Отнести каждый объект к кластеру с ближайшим центроидом • Сдвинуть центроиды в «центр» кластера • Проверить условия выхода из цикла
Fuzzy c-means Fuzzy c-means – алгоритм нечеткой кластеризации, в котором каждый объект может относиться к нескольким кластерам Не теряется информация о значимой близости объекта к нескольким центроидам
Применение k-means • Быстрая и простая кластеризация • Поиск известного количества кластеров (распознавание образов)
Плотностные алгоритмы • Идея: поиск кластеров, внутри которых сохраняется определенная плотность между объектами
Алгоритм DBSCAN • Внутри каждого кластера наблюдается плотность объектов заметно выше, чем плотность снаружи кластера • Плотность в областях с шумом ниже плотности любого из кластеров • Вычислительная сложность: O(n∙logn)
Алгоритм DBSCAN • ε-соседство точки (N ε(p) )- множество объектов находящихся на расстоянии не более ε • MinPt – минимальное число точек (плотность) в множестве соседства данной точки
Алгоритм DBSCAN Инициализация: • Выбрать ε, MinPt Для каждого из множества объектов: • Найти множество соседей точки • Если вокруг точки плотность меньше MinPt, то это шум • Если точка еще не входит в кластер, то создаем его вокруг нее • Если входит – расширяем кластер
Применение DBSCAN • Устранения шумов (с изображений, аудиозаписей и т.д.) • Поиск сложных фигур из объектов
Спасибо за внимание Вопросы по кластеризации присылайте на: ivan.savin@auditory.ru