Upload
technosphere1
View
163
Download
12
Embed Size (px)
Citation preview
Лекция 2Задачи кластеризации
Николай Анохин
2 октября 2014 г.
План занятия
Задача кластеризации
Смесь нормальных распределений и EM
K-means и его модификации
1 / 30
Задача кластеризации
В задачах кластеризации целевая переменная не задана. Цель –отыскать “скрытую структуру” данных.
Зачем вообще рассматривать задачи без целевой переменной?1. разметка данных – дорогое удовольствие2. можно сначала поделить, а потом разметить3. возможность отслеживать эволюционные изменения4. построение признаков5. exploratory data analysis
2 / 30
Программисты python в Twitter
Графо-теоретические методы (источник)
3 / 30
Похожие тематики
Иерархическая кластеризия
4 / 30
Топ 1000 самых посещаемых доменов рунета
T-SNE + DBSCAN
5 / 30
Постановка задачи
Дано. N обучающих D-мерных объектов xi ∈ X , образующихтренировочный набор данных (training data set) X .
Найти. Модель h∗(x) из семейства параметрических функцийH = {h(x, θ) : X ×Θ→ N}, ставящую в соответствие произвольномуx ∈ X один из K кластеров так, чтобы объекты внутри одногокластера были похожи, а объекты из разных кластеров различались.
I Как определить похожесть объектов?I Как оценить качество модели?I Как выбрать K?
6 / 30
Многомерное нормальное распределение
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
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
Смесь нормальных распределений
“Скрытая” 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
Апостериорная вероятность принадлежности к 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
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
Дифференцируем функцию правдоподобия
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
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
14 / 30
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
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
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
18 / 30
Задача
1 2 3 4 5
01
23
4
19 / 30
Модификации 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
Альтернативные функции расстояния
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
Расстояния 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
Проблема
Функции расстояния чувствительны к преобразоаниям данных
РешениеI Преобразовать обучающую выборку так, чтобы признаки имели
нулевое среднее и единичную дисперсию – инвариантность крастяжению и сдвигу (standartize)
I Преобразовать обучающую выборку так, чтобы оси совпадали сглавными компонентами матрицы ковариации – инвариантностьотносительно поворотов (PCA)
23 / 30
Расстояния 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
Проклятие размерности
ЗадачаДаны два случайных вектора 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
Альтернативные критерии качества
Критерий
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
Кластеризация
ИдеяВыбрать критерий качества кластеризации J и расстояние междуобъектами d(xi , xj) и вычислить разбиение выборки на кластеры,которое которое соответствует оптимальному значению выбранногокритерия.
27 / 30
Качество кластеризации
Пусть дана обучающая выборка, для которой правильнаякластеризация 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
ЗадачаДано: Сгенерированная смесь из гауссовских распределенийТребуется: Исследовать стабильность и чувствительность клинейным преобразованиям алгоритма 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
Вопросы