L10: Алгоритмы кластеризации

22
Введение в Data Science Занятие 9. Алгоритмы кластеризации Николай Анохин Михаил Фирулик 26 апреля 2014 г.

description

L10: Алгоритмы кластеризации

Transcript of L10: Алгоритмы кластеризации

Page 1: L10: Алгоритмы кластеризации

Введение в Data ScienceЗанятие 9. Алгоритмы кластеризации

Николай Анохин Михаил Фирулик

26 апреля 2014 г.

Page 2: L10: Алгоритмы кластеризации

Определение количества кластеров

Иерархическая кластеризация

DBSCAN

Page 3: L10: Алгоритмы кластеризации

Задача кластеризации

ДаноI обучающая выборка X = (x1, . . . , xN)

ЗадачаРазбить обучающую выборку на непересекающиеся множества(кластеры) так, чтобы объекты внутри одного кластера были близки,а объекты из разных кластеров отдалены

Page 4: L10: Алгоритмы кластеризации

Выбор наилучшего K

Идея. Выбрать критерий качества кластеризации и построить егозначение для K = 1, 2, . . .

I средняя сумма квадратоврасстояния до центроида

I средний диаметр кластера

Page 5: L10: Алгоритмы кластеризации

Критерий 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 является критерием качествакластеризации.

Page 6: L10: Алгоритмы кластеризации

Иерархическая кластеризация: идея метода

Agglomerative1. начинаем с ситуации, когда каждый объект – отдельный кластер2. на каждом шаге совмещаем два наиболее близких кластера3. останавливаемся, когда получаем требуемое количество или

единственный кластер

Divisive1. начинаем с ситуации, когда все объекты составляют один

кластер2. на каждом шаге разделяем два один из кластеров пополам3. останавливаемся, когда получаем требуемое количество или N

кластеров

Page 7: L10: Алгоритмы кластеризации

Дендрограмма

Page 8: L10: Алгоритмы кластеризации

Радиальная дендрограмма

Page 9: L10: Алгоритмы кластеризации

Агломеративный алгоритм

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)

Page 10: L10: Алгоритмы кластеризации

Расстояние между кластерами

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‖

Page 11: L10: Алгоритмы кластеризации

ЗадачаКластеризовать данные иерархическим методом с использованиемрасстояний между кластерами dmin и dmax

1 2 3 4 5

01

23

4

x

y

Page 12: L10: Алгоритмы кластеризации

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‖

Page 13: L10: Алгоритмы кластеризации

Неэвклидовы пространства

Проблема. Как измерить расстояние между кластерами, еслиневозможно определить центроид?

Идея. В каждом из кластеров выбрать “типичный” пример –clustroid.

МинимизируемI сумму расстояний до других объектов в кластереI сумму квадратов расстояний до других объектов в кластереI максимальное расстояние до других объектов в кластере

Page 14: L10: Алгоритмы кластеризации

Иерархическая кластеризация: итог

+ Несферические кластеры+ Разнообразие критериев+ Любые K из коробки— Требует много ресурсов

Page 15: L10: Алгоритмы кластеризации

DBSCAN: идея метода

I Кластеризация, основанная на плотности объектовI Кластеры – участки высокой плотности, разделенные участками

низкой плотности

Page 16: L10: Алгоритмы кластеризации

Определения

ПлотностьКоличество объектов внутри сферы заданного радиуса ε

Core-объектОбъект x является core-объектом, если плотность вокруг негобольше min_pts

Граничный-объектОбъект x является граничным-объектом, если плотность вокруг негоменьше min_pts, но он находится рядом с core-объектом

ШумОбъект x является шумом, если он не является ни core-объектом, ниграничным объектом

Page 17: L10: Алгоритмы кластеризации

Виды объектов

Page 18: L10: Алгоритмы кластеризации

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

Page 19: L10: Алгоритмы кластеризации

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)

Page 20: L10: Алгоритмы кластеризации

DBSCAN: итог

+ не требует K

+ кластеры произвольной формы+ учитывает выбросы— Не вполне детерминированный— Не работает при разных плотностях

кластеров

Page 21: L10: Алгоритмы кластеризации

Домашнее задание 2

Иерархическая кластеризация и DBCSANРеализовать алгоритм иерархической кластеризации и DBSCAN ипротестировать на данных задачи модуля

Ключевые датыI До 2014/05/03 00.00 выбрать ответственныхI До 2014/05/10 00.00 предоставить решения (после – половина

очков)

Page 22: L10: Алгоритмы кластеризации

На сегодня

1. Скачать ветку hier и запустить код для нескольких значений n

2. Реализовать метрики качества кластеризации2.1 Средней квадрат отклонения от центра2.2 Средний диаметр кластера2.3 Silhouette

Позволяют ли эти метрики верно выбрать число кластеров?