L10: Алгоритмы кластеризации
-
Upload
technosphere1 -
Category
Software
-
view
237 -
download
1
description
Transcript of L10: Алгоритмы кластеризации
Введение в Data ScienceЗанятие 9. Алгоритмы кластеризации
Николай Анохин Михаил Фирулик
26 апреля 2014 г.
Определение количества кластеров
Иерархическая кластеризация
DBSCAN
Задача кластеризации
ДаноI обучающая выборка X = (x1, . . . , xN)
ЗадачаРазбить обучающую выборку на непересекающиеся множества(кластеры) так, чтобы объекты внутри одного кластера были близки,а объекты из разных кластеров отдалены
Выбор наилучшего K
Идея. Выбрать критерий качества кластеризации и построить егозначение для K = 1, 2, . . .
I средняя сумма квадратоврасстояния до центроида
I средний диаметр кластера
Критерий Silhouette
Пусть дана кластеризация в K кластеров, и объект i попал в Ck
I a(i) – среднее расстояние от i объекта до объектов из Ck
I b(i) = minj 6=kbj(i), где bj(i) – среднее расстояние от i объекта дообъектов из Cj
silhouette(i) =b(i)− a(i)
max(a(i), b(i))
Средний silhouette для всех точек из X является критерием качествакластеризации.
Иерархическая кластеризация: идея метода
Agglomerative1. начинаем с ситуации, когда каждый объект – отдельный кластер2. на каждом шаге совмещаем два наиболее близких кластера3. останавливаемся, когда получаем требуемое количество или
единственный кластер
Divisive1. начинаем с ситуации, когда все объекты составляют один
кластер2. на каждом шаге разделяем два один из кластеров пополам3. останавливаемся, когда получаем требуемое количество или N
кластеров
Дендрограмма
Радиальная дендрограмма
Агломеративный алгоритм
agglomerative(X, K):Инициализируем Ci ← xi , C = Ndo
Ищем ближайшие кластеры Ci и Cj
Совмещаем ближайшие кластеры Ci и Cj
C = C − 1until C = K or C = 1return C1, . . . ,CK
Алгоритмическая сложность: O(n2 log n)
Расстояние между кластерами
I single-linkagedmin(Ci ,Cj) = min
x∈Ci ,x′∈Cj
‖x− x′‖
I complete-linkage
dmax(Ci ,Cj) = maxx∈Ci ,x′∈Cj
‖x− x′‖
I average
davg (Ci ,Cj) =1
ninj
∑x∈Ci
∑x′∈Cj
‖x− x′‖
I meandmean(Ci ,Cj) = ‖mi −mj‖
ЗадачаКластеризовать данные иерархическим методом с использованиемрасстояний между кластерами dmin и dmax
1 2 3 4 5
01
23
4
x
y
Stepwise-optimal HC
Какой критерий мы оптимизируем?
swo(X, K):Инициализируем Ci ← xi , C = Ndo
Ищем Ci и Cj, после совмещения которыхкритерий оптимальности наиболее улучшится
Совмещаем ближайшие кластеры Ci и Cj
C = C − 1until C = K or C = 1return C1, . . . ,CK
dmax обеспечивает наименьшее увеличение диаметра кластераde обеспечивает наименьшее увеличение квадратичного критерия
de(Ci ,Cj) =
√ninj
ni + nj‖mi −mj‖
Неэвклидовы пространства
Проблема. Как измерить расстояние между кластерами, еслиневозможно определить центроид?
Идея. В каждом из кластеров выбрать “типичный” пример –clustroid.
МинимизируемI сумму расстояний до других объектов в кластереI сумму квадратов расстояний до других объектов в кластереI максимальное расстояние до других объектов в кластере
Иерархическая кластеризация: итог
+ Несферические кластеры+ Разнообразие критериев+ Любые K из коробки— Требует много ресурсов
DBSCAN: идея метода
I Кластеризация, основанная на плотности объектовI Кластеры – участки высокой плотности, разделенные участками
низкой плотности
Определения
ПлотностьКоличество объектов внутри сферы заданного радиуса ε
Core-объектОбъект x является core-объектом, если плотность вокруг негобольше min_pts
Граничный-объектОбъект x является граничным-объектом, если плотность вокруг негоменьше min_pts, но он находится рядом с core-объектом
ШумОбъект x является шумом, если он не является ни core-объектом, ниграничным объектом
Виды объектов
DBSCAN 1
dbscan(X, ε, min_pts):for не посещенные P ∈ X:
помечаем P как посещенныйnbr = neigbors(P, ε)if len(nbr) < min_pts:
помечаем P как шумelse:
C = create_cluster()expand_cluster(P, nbr ,C , ε,min_pts)yield C
DBSCAN 2
expand_cluster(P, nbr ,C , ε,min_pts):добавляем P в Cfor P ′ ∈ nbr:
if P ′ не посещался:помечаем P ′ как посещенныйnbr ′ = neighbors(P ′, ε)if len(nbr) ≥ min_pts:
if P ′ не принадлежит ни одному кластеру:добавляем P ′ в C
Сложность: O(n2) или O(n log n) (R∗Tree)Память: O(n) или O(n2)
DBSCAN: итог
+ не требует K
+ кластеры произвольной формы+ учитывает выбросы— Не вполне детерминированный— Не работает при разных плотностях
кластеров
Домашнее задание 2
Иерархическая кластеризация и DBCSANРеализовать алгоритм иерархической кластеризации и DBSCAN ипротестировать на данных задачи модуля
Ключевые датыI До 2014/05/03 00.00 выбрать ответственныхI До 2014/05/10 00.00 предоставить решения (после – половина
очков)
На сегодня
1. Скачать ветку hier и запустить код для нескольких значений n
2. Реализовать метрики качества кластеризации2.1 Средней квадрат отклонения от центра2.2 Средний диаметр кластера2.3 Silhouette
Позволяют ли эти метрики верно выбрать число кластеров?