31
Лекция 2 Задачи кластеризации Николай Анохин 2 октября 2014 г.

Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Embed Size (px)

Citation preview

Page 1: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

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

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

2 октября 2014 г.

Page 2: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

План занятия

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

Смесь нормальных распределений и EM

K-means и его модификации

1 / 30

Page 3: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

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

В задачах кластеризации целевая переменная не задана. Цель –отыскать “скрытую структуру” данных.

Зачем вообще рассматривать задачи без целевой переменной?1. разметка данных – дорогое удовольствие2. можно сначала поделить, а потом разметить3. возможность отслеживать эволюционные изменения4. построение признаков5. exploratory data analysis

2 / 30

Page 4: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Программисты python в Twitter

Графо-теоретические методы (источник)

3 / 30

Page 5: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Похожие тематики

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

4 / 30

Page 6: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Топ 1000 самых посещаемых доменов рунета

T-SNE + DBSCAN

5 / 30

Page 7: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Постановка задачи

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

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

I Как определить похожесть объектов?I Как оценить качество модели?I Как выбрать K?

6 / 30

Page 8: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Многомерное нормальное распределение

N (x|µ,Σ) =1

(2π)D/21

|Σ|1/2exp

{−1

2(x− µ)TΣ−1(x− µ)

}

Параметры

D-мерный вектор средних D × D-мерная матрица ковариации

µ =

∫xp(x)dx Σ = E [(x− µ)(x− µ)T ]

(a) D = 2 (b) (c) Σ = diag(σi ) (d) Σ = σI

7 / 30

Page 9: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Old Faithful data set

D = date of recordings in month (in August)X = duration of the current eruption in minutesY = waiting time until the next eruption in minutes

(a) Yellowstone Park (b)

8 / 30

Page 10: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Смесь нормальных распределений

“Скрытая” K -мерная переменная z – принадлежность объекта кодному из кластеров

p(zk = 1) = πk , zk ∈ {0, 1},∑k

zk = 1 → p(z) =∏k

πzkk

Распределение x для каждого из K кластеров

p(x|zk) = N (x|µk ,Σk) → p(x|z) =∏k

N (x|µk ,Σk)zk

Смесь нормальных распределений

p(x) =∑k

πkN (x|µk ,Σk)

9 / 30

Page 11: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Апостериорная вероятность принадлежности к k кластеру(априорная равна πk)

γ(zk) = p(zk = 1|x) =p(zk = 1)p(x|zk = 1)∑Kj=1 p(zj = 1)p(x|zj = 1)

=

=πkN (x|µk ,Σk)∑Kj=1 πjN (x|µj ,Σj)

10 / 30

Page 12: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Maximum Likelihood (!)

ML принципПусть дано семейство параметрических моделей h(x, θ). Выбираемвектор параметров θ, максимизирующий функцию правдоподобия(likelihood) p(D|θ), соответствующую рассматриваемому семействумоделей.

Функция правдоподобия

log(X|π, µ,Σ) =N∑

n=1

log∑k

πkN (xn|µk ,Σk)→ maxπ,µ,Σ

СложностиI схлопывание компонентI переименование кластеровI невозможно оптимизировать аналитически

11 / 30

Page 13: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Дифференцируем функцию правдоподобия

Nk =N∑

n=1

γ(znk), µk =1

Nk

N∑n=1

γ(znk)xn

Σk =1

Nk

N∑n=1

γ(znk)(xn − µk)T (xn − µk)

πk =Nk

N

12 / 30

Page 14: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Expectation Maximization (!)

E Expectation: при фиксированных µk ,Σk , πk

γ(znk) =πkN (xn|µk ,Σk)∑Kj=1 πjN (xn|µj ,Σj)

M Maximization: при фиксированных γ(znk)

Nk =N∑

n=1

γ(znk), µk =1

Nk

N∑n=1

γ(znk)xn

Σk =1

Nk

N∑n=1

γ(znk)(xn − µk)(xn − µk)T

πk =Nk

N

S Остановиться при достижении сходимости

13 / 30

Page 15: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

14 / 30

Page 16: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

EM-алгоритм

Дано. Известно распределение P(X,Z|θ), где x – наблюдаемыепеременные, а z – скрытые.Найти. θ, максимизирующее P(X|θ).

E вычислить P(Z|X, θold) при фиксированном θold

M вычислить θnew = arg maxθQ(θ, θold), где

Q(θ, θold) = EZ[ln p(X,Z|θ)] =∑

Z

p(Z|X, θold) ln p(X,Z|θ))

Улучшение: ввести априорное распределение p(θ)

15 / 30

Page 17: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

K-meansПусть Σk = εI , тогда

p(x|µk ,Σk) =1√2πε

exp(− 1

2ε‖x− µk‖2)

Рассмотрим стремление ε→ 0

γ(znk) =πk exp(− 1

2ε‖xn − µk‖2)∑j πj exp(− 1

2ε‖xn − µj‖2)→ rnk =

{1, для k = arg minj ‖xn − µj‖2

0, иначе

Функция правдоподобия

EZ[ln p(X,Z|µ,Σ, π)]→ −N∑

n=1

K∑k=1

rnk‖xn − µk‖2 + const

Вектор средних

µk =

∑n rnkxn∑n rnk

16 / 30

Page 18: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

K-means

1 function kmeans(X, K):2 initialize N # number of objects3 initialize Mu = (mu_1 ... mu_K) # random centroids4 do:5 # E step6 for k in 1..K:7 for x in 1..N:8 compute r_nk # Cluster assignment9 # M step10 for k in 1..K:11 recompute mu_k # Update centroids12 until Mu converged13 J = loss(X, Mu)14 return Mu, J

Сложность O(NK )Локальная оптимизация (!)

17 / 30

Page 19: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

18 / 30

Page 20: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Задача

1 2 3 4 5

01

23

4

19 / 30

Page 21: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Модификации k-means

I На каждом шаге работаем с b случайно выбранными объектамииз каждого кластера (mini-batch k-means)

I Критерий качества (k-medoids)

J̃ =N∑

n=1

K∑k=1

rnkd(xn, µk)

d – функция расстояния, µk – один из объектов в кластере

20 / 30

Page 22: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Альтернативные функции расстояния

DefФункция d(x, y) : X× X→ R является функцией расстояния,определенной на пространстве X тогда и только тогда, когда∀x ∈ X, ∀y ∈ X, ∀z ∈ X выполнено:1. d(x, y) ≥ 0

2. d(x, y) = 0⇔ x = y

3. d(x, y) = d(y, x)

4. d(x, y) ≤ d(x, z) + d(y, z)

21 / 30

Page 23: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Расстояния 1

I Минковского

dr (x, y) =

N∑j=1

|xj − yj |r 1

r

I Евклидово r = 2

dE (x, y) = d2(x, y)

I Манхэттэн r = 1

dM(x, y) = d1(x, y)

I r =∞

d∞(x, y) = maxj|xj − yj |

22 / 30

Page 24: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Проблема

Функции расстояния чувствительны к преобразоаниям данных

РешениеI Преобразовать обучающую выборку так, чтобы признаки имели

нулевое среднее и единичную дисперсию – инвариантность крастяжению и сдвигу (standartize)

I Преобразовать обучающую выборку так, чтобы оси совпадали сглавными компонентами матрицы ковариации – инвариантностьотносительно поворотов (PCA)

23 / 30

Page 25: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Расстояния 2

I Жаккар

dJ(x, y) = 1− |x ∩ y||x ∪ y|

I Косинус

dc(x, y) = arccosxy

‖x‖‖y‖

I Правкиde – наименьшее количествоудалений и вставок, приводящее x кy.

I ХэммингdH – количество различныхкомпонент в x и y.

24 / 30

Page 26: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Проклятие размерности

ЗадачаДаны два случайных вектора x и y в пространстве размерности D.Как зависит математическое ожидание косинус-расстояния между xи y от размерности D?

dc(x, y) = arccos

∑Dj=1 xjyj∑D

j=1 x2j

∑Dj=1 y

2j

Наблюдения:I числитель стремится к нулюI знаменатель положительный

Вывод: dc(x, y)→ π2 .

25 / 30

Page 27: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Альтернативные критерии качества

Критерий

J =K∑

k=1

∑xi∈Ck

‖xi −mk‖2 =

=1

2

K∑k=1

nk

1

n2k

∑xi∈Ck

∑xj∈Ck

‖xi − xj‖2 =

=1

2

K∑k=1

nk

1

n2k

∑xi∈Ck

∑xj∈Ck

s(xi , xj)

=1

2

K∑k=1

nk s̄k

Примеры s̄isk = min

xi ,xjs(xi , xj); s̄k = max

xi ,xjs(xi , xj)

26 / 30

Page 28: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Кластеризация

ИдеяВыбрать критерий качества кластеризации J и расстояние междуобъектами d(xi , xj) и вычислить разбиение выборки на кластеры,которое которое соответствует оптимальному значению выбранногокритерия.

27 / 30

Page 29: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Качество кластеризации

Пусть дана обучающая выборка, для которой правильнаякластеризация C известна. С помощью выбранного алгоритмаполучена кластеризация K . Проверить, насколько K совпадает с C .

I Rand Indexa – кол-во пар объектов, попавших в один кластер и в C , и в Kb – кол-во пар объектов, попавших в разные кластеры и в C , и в K

RI =a+ b

CN2

I Mutual Information

MI =∑c∈C

∑k∈K

p(c, k) logp(c, k)

p(k)p(c)

28 / 30

Page 30: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

ЗадачаДано: Сгенерированная смесь из гауссовских распределенийТребуется: Исследовать стабильность и чувствительность клинейным преобразованиям алгоритма k-means

Пошаговая инструкция1. Скачать и запустить шаблон кода на python

http://bit.ly/1yyVTyw

$ python kmeans.py -h$ python kmeans.py

2. Заполнить функцию rand_indexМеняется ли rand от запуска к запуску?

3. Дописать функцию cluster_dataРеализовать N-times random restart

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

29 / 30

Page 31: Лекция №2 "Задача кластеризации и ЕМ-алгоритм"

Вопросы