28
Лекция 3 Алгоритмы кластеризации Николай Анохин 9 октября 2014 г.

Лекция №3 "Различные алгоритмы кластеризации"

Embed Size (px)

Citation preview

Page 1: Лекция №3 "Различные алгоритмы кластеризации"

Лекция 3Алгоритмы кластеризации

Николай Анохин

9 октября 2014 г.

Page 2: Лекция №3 "Различные алгоритмы кластеризации"

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

Дано. N обучающих D-мерных объектов xi ∈ X , образующихтренировочный набор данных (training data set) X .

Найти. Модель h∗(x) из семейства параметрических функцийH = {h(x, θ) : X ×Θ→ N}, ставящую в соответствие произвольномуx ∈ X один из K кластеров так, чтобы объекты внутри одногокластера были похожи, а объекты из разных кластеров различались.

Что мы уже изучилиI принцип Maximum LikelihoodI алгоритм Expectation MaximizationI смесь нормальных распределений и k-meansI различные виды функций расстояния/схожести

1 / 27

Page 3: Лекция №3 "Различные алгоритмы кластеризации"

План занятия

Байесовская кластеризация

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

DBSCAN

Выбор количества кластеров

2 / 27

Page 4: Лекция №3 "Различные алгоритмы кластеризации"

MAPMaximum a posterioriПусть дано семейство параметрических моделей h(x, θ). Вычисляемапостериорное распределение p(θ|D). В качестве оптимального θвыбираем моду этого распределения.

Предположения1. Количество кластеров K задано2. Априорные вероятности кластеров заданы P(cj), ∀j ∈ 1, . . . ,K

3. Распределение x в зависимости от клаcтера cj и параметров θjизвестны p(x|cj , θj)

4. Априорное распределение параметров p(θ) задано5. Дан обучающий набор данных D, состоящий из n объектов x,

независимо выбранных из распределения

p(x|θ) =K∑j=1

P(cj)p(x|cj , θj)

3 / 27

Page 5: Лекция №3 "Различные алгоритмы кластеризации"

Байесовская кластеризация

Дано. P(cj), p(x|cj , θj), p(θ), p(x|θ)

Найти. p(cj |x)

p(cj |x,D) =p(cj |D)p(x|cj ,D)∑Ki=1 p(ci |D)p(x|ci ,D)

=

=P(cj)

∫p(x|cj , θj)p(θ|D)dθ∑K

i=1 P(ci )∫p(x|ci , θi )p(θ|D)dθ

=

Неизвестно. p(θ|D)

4 / 27

Page 6: Лекция №3 "Различные алгоритмы кластеризации"

Апостериорное распределение параметров

Дано. P(cj), p(x|cj , θj), p(θ), p(x|θ)

Найти. p(θ|D)

p(θ|D) =p(θ)p(D|θ)∫p(θ)p(D|θ)dθ

=

=p(θ)

∏nk=1 p(xk |θ)∫

p(θ)∏n

k=1 p(xk |θ)dθ

Итеративное обновление θ

p(θ|Dn) =p(xn|θ)p(θ|Dn−1)∫p(xn|θ)p(θ|Dn−1)dθ

5 / 27

Page 7: Лекция №3 "Различные алгоритмы кластеризации"

Байесовская кластеризация

I при равномерном p(θ)MAP = ML

I для больших наборов данныхMAP ≈ ML

I для маленьких наборовданных MAP лучше ML

I при MAP доверительныеинтервалы из коробки

I ML обычно прощереализовать

6 / 27

Page 8: Лекция №3 "Различные алгоритмы кластеризации"

Иерархическая кластеризация (источник)

7 / 27

Page 9: Лекция №3 "Различные алгоритмы кластеризации"

Два подхода

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

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

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

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

кластеров

8 / 27

Page 10: Лекция №3 "Различные алгоритмы кластеризации"

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

9 / 27

Page 11: Лекция №3 "Различные алгоритмы кластеризации"

Агломеративный алгоритм1 function agglomerative(X, K):2 initialize N # number of objects3 initialize C = N # number of clusters4 initialize C_i = x_i # initial clusters5 while C > K:6 C_a = C_b = None # closest clusters7 min_dist = +inf # distance between closest8 for i in 1 .. C:9 for j in i + 1 .. C:10 dist = d(C_i, C_j) # dist. betw. clusters11 if dist < min_dist:12 min_dist = dist13 C_a = C_i14 C_b = C_j15 merge(C_a, C_b)16 C = C - 117 return C_1, ..., C_K

память O(N2), сложность O(N2logN)

10 / 27

Page 12: Лекция №3 "Различные алгоритмы кластеризации"

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

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‖

11 / 27

Page 13: Лекция №3 "Различные алгоритмы кластеризации"

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

1 2 3 4 5

01

23

4

x

y

12 / 27

Page 14: Лекция №3 "Различные алгоритмы кластеризации"

Stepwise-optimal HCКакой критерий мы оптимизируем?

1 function swo(X, K):2 initialize N # number of objects3 initialize C = N # number of clusters4 initialize C_i = x_i # initial clusters5 while C > K:6 # choose the pair that optimizes7 # the given criterion J when merged8 C_a, C_b = find_best_merge(J, C_1, ..., C_C)9 merge(C_a, C_b)10 C = C - 111 return C_1, ..., C_K

dmax обеспечивает наименьшее увеличение диаметра кластераde обеспечивает наименьшее увеличение квадратичного критерия

de(Ci ,Cj) =

√ninj

ni + nj‖mi −mj‖

13 / 27

Page 15: Лекция №3 "Различные алгоритмы кластеризации"

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

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

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

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

14 / 27

Page 16: Лекция №3 "Различные алгоритмы кластеризации"

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

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

15 / 27

Page 17: Лекция №3 "Различные алгоритмы кластеризации"

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

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

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

(источник)

16 / 27

Page 18: Лекция №3 "Различные алгоритмы кластеризации"

Определения

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

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

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

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

17 / 27

Page 19: Лекция №3 "Различные алгоритмы кластеризации"

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

18 / 27

Page 20: Лекция №3 "Различные алгоритмы кластеризации"

DBSCAN 1

1 function dbscan(X, eps, min_pts):2 initialize NV = X # not visited objects3 for x in NV:4 remove(NV, x) # mark as visited5 nbr = neighbours(x, eps) # set of neighbours6 if nbr.size < min_pts:7 mark_as_noise(x)8 else:9 C = new_cluster()10 expand_cluster(x, nbr, C, eps, min_pts, NV)11 yield C

19 / 27

Page 21: Лекция №3 "Различные алгоритмы кластеризации"

DBSCAN 2

1 function expand_cluster(x, nbr, C, eps, min_pts, NV):2 add(x, C)3 for x1 in nbr:4 if x1 in NV: # object not visited5 remove(NV, x1) # mark as visited6 nbr1 = neighbours(x1, eps)7 if nbr1.size >= min_pts:8 # join sets of neighbours9 merge(nbr, nbr_1)10 if x1 not in any cluster:11 add(x1, C)

Сложность: O(n2) или O(n log n) (R∗Tree)Память: O(n) или O(n2)

20 / 27

Page 22: Лекция №3 "Различные алгоритмы кластеризации"

DBSCAN: итог

+ не требует K

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

кластеров

21 / 27

Page 23: Лекция №3 "Различные алгоритмы кластеризации"

Викторина

22 / 27

Page 24: Лекция №3 "Различные алгоритмы кластеризации"

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

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

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

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

23 / 27

Page 25: Лекция №3 "Различные алгоритмы кластеризации"

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

24 / 27

Page 26: Лекция №3 "Различные алгоритмы кластеризации"

Кластеризация. Что дальше

I Графо-теоретические методы (affinity propagation, mcl, etc.)I Снижение размерности (SOM, PCA, etc.)I Бесконечномерные смеси (Dirichlet process)

25 / 27

Page 27: Лекция №3 "Различные алгоритмы кластеризации"

Задача

Кластеризовать фотографии с футбольных матчей. Ожидается чтофотографии игроков одной команды окажутся в одном кластере.

I Скачать данные и шаблон кода http://bit.ly/1uALLl4I Запустить код и интерпретировать дендрограмму

python football/football.py football/img/

При K = 3 сколько ошибок дает алгоритм?I Поэкспериментировать с разными видами расстояния между

кластерами (-l). Какой из них дает наилучший результат?I Реализовать критерии выбора количества кластеров: diameter и

silhouette. Какое число кластеров рекомендует каждый изкритериев?

26 / 27

Page 28: Лекция №3 "Различные алгоритмы кластеризации"

Вопросы