|
| 1 | +# Понижение размерности. Кластеризация |
| 2 | + |
| 3 | +В данной главе рассматриваются методы работы с данными, направленные на уменьшение количества признаков при сохранении структуры данных (понижение размерности), а также методы автоматического grouping объектов без учителя (кластеризация). Мы изучим метод главных компонент (PCA), t-SNE, алгоритмы k-средних, иерархическую кластеризацию и DBSCAN. |
| 4 | + |
| 5 | +## 1. Понижение размерности |
| 6 | + |
| 7 | +### Основная идея |
| 8 | +Главная задача понижения размерности — сохранить расстояния между точками при переходе к пространству меньшей размерности. Точки, которые были близкими (или далёкими) в пространстве высокой размерности, должны оставаться близкими (или далёкими) в пространстве меньшей размерности. |
| 9 | + |
| 10 | +### Метод главных компонент (PCA) |
| 11 | +Простое отрезание оси пространства почти всегда не оптимально: в худшем случае проекция превратится в точку. |
| 12 | + |
| 13 | +**Основная концепция:** |
| 14 | +1. Предполагается, что данные описываются неким эллипсом. |
| 15 | +2. Меняется базис пространства. |
| 16 | +3. Отрезается «новая ось» с минимальной дисперсией. |
| 17 | +4. Чтобы посчитать «потерянную информацию», делят дисперсию отрезанной оси на сумму дисперсий по всем осям. |
| 18 | + |
| 19 | +**Вычисления:** |
| 20 | +Ковариация признаков вычисляется по формуле: |
| 21 | +$$cov(X_i, X_j) = M[(X_i - M[X_i])(X_j - M[X_j])] = M[X_i X_j] - M[X_i]M[X_j]$$ |
| 22 | + |
| 23 | +Выборку можно переместить так, чтобы математическое ожидание $M[X_i] = 0$. В матричном виде ковариация: |
| 24 | +$$cov(X) = X^T X$$ |
| 25 | + |
| 26 | +Свойства: |
| 27 | +* Ковариация симметрична. |
| 28 | +* Ковариация признака с самим собой равна его дисперсии. |
| 29 | +* Направление оси с максимальной дисперсией совпадает с направлением собственного вектора с максимальным собственным значением. |
| 30 | +* Собственное значение в этом случае равно дисперсии. |
| 31 | + |
| 32 | +**Ограничения PCA:** |
| 33 | +* Необходимо стандартизировать выборку. |
| 34 | +* Не работает со сложными структурами, не похожими на эллипс. |
| 35 | + |
| 36 | +### t-SNE (t-Distributed Stochastic Neighbor Embedding) |
| 37 | + |
| 38 | +**Физический смысл:** |
| 39 | +1. Данные из пространства размерности $N$ помещаются в пространство меньшей размерности $M$ (отображение). |
| 40 | +2. Объекты «прибиваются гвоздями» к своим местам. |
| 41 | +3. Объекты в пространстве $M$ соединяются пружинками. Сила пружины зависит от того, насколько расстояние в пространстве $M$ отличается от расстояния в пространстве $N$. |
| 42 | +4. Система «отпускается» (гвозди убираются). |
| 43 | + |
| 44 | +**Динамика:** |
| 45 | +* Если точки в пространстве $M$ дальше, чем в пространстве $N$, то они притягиваются. |
| 46 | +* Если точки в пространстве $M$ ближе, чем в пространстве $N$, то они отталкиваются. |
| 47 | + |
| 48 | +**Математическое описание:** |
| 49 | +Пусть $\|x_i - x_j\|$ — расстояние в исходном пространстве, $\|y_i - y_j\|$ — расстояние в пространстве отображения. |
| 50 | + |
| 51 | +Условное сходство (Гауссово распределение): |
| 52 | +$$p_{j|i} = \frac{e^{-\|x_i - x_j\|^2 / 2\sigma_i^2}}{\sum_{k \neq i} e^{-\|x_i - x_k\|^2 / 2\sigma_i^2}}$$ |
| 53 | +где $\sigma_i^2$ — дисперсия распределения Гаусса вокруг точки $x_i$. Разные распределения берутся для точек в плотных и разреженных участках. |
| 54 | + |
| 55 | +Симметричное сходство: |
| 56 | +$$p_{ji} = \frac{p_{j|i} + p_{i|j}}{2N}$$ |
| 57 | + |
| 58 | +В пространстве меньшей размерности используется не Гауссово, а распределение Стьюдента с одной степенью свободы (t-distribution): |
| 59 | +$$q_{ij} = \frac{t(\|y_i - y_j\|)}{\sum_{k \neq i} t(\|y_i - y_k\|)}, \text{ где } t(x) = \frac{1}{1 + x^2}$$ |
| 60 | + |
| 61 | +**Оптимизация:** |
| 62 | +Необходимо приблизить матрицу сходства отображения к матрице исходного пространства. Минимизируется расстояние Кульбака-Лейблера: |
| 63 | +$$KL(P||Q) = \sum_{i,j} p_{ij} \log \frac{p_{ij}}{q_{ij}} \to \min$$ |
| 64 | + |
| 65 | +Минимизация производится методом градиентного спуска. Градиент является совокупностью всех сил, действующих на объект: |
| 66 | +$$\frac{\partial KL(P||Q)}{\partial y_i} = 4 \sum_j (p_{ij} - q_{ij}) t(\|x_i - x_j\|) u_{ij}$$ |
| 67 | +где $u_{ij}$ — единичный вектор. |
| 68 | + |
| 69 | +**Почему t-distribution?** |
| 70 | +При понижении размерности максимальные расстояния «меняются». Если использовать распределение Гаусса, то точки отображаются очень скученно (crowding problem). |
| 71 | + |
| 72 | +**Особенности t-SNE:** |
| 73 | +* Работает со сложными структурами. |
| 74 | +* При появлении новых данных нет возможности просто спроецировать их. Нужно либо полностью переобучаться, либо использовать «хитрости» (например, k-nn). |
| 75 | +* Долго считать. Можно брать не все точки, а только ближайших соседей. |
| 76 | + * Если брать мало соседей, t-SNE больше учитывает локальные паттерны. |
| 77 | + * Если брать много соседей, t-SNE больше учитывает глобальные паттерны. |
| 78 | + |
| 79 | +### Autoencoders |
| 80 | +... |
| 81 | + |
| 82 | +## 2. Кластеризация |
| 83 | + |
| 84 | +### k-средних (k-means) |
| 85 | +Алгоритм заключается в следующем: |
| 86 | +1. Задать количество кластеров. |
| 87 | +2. Бросить случайным образом точки (центроиды) в пространстве. |
| 88 | +3. Для каждой точки посчитать, к какому центроиду она ближе. |
| 89 | +4. Передвинуть каждый центроид в «центры масс» подвыборки, принадлежащих этому центроиду. |
| 90 | +5. Повторять пункты 3-4 фиксированное число раз, или пока перемещение центроидов не будет достаточно маленьким (алгоритм сойдётся). |
| 91 | + |
| 92 | +**Особенности и ограничения:** |
| 93 | +* Нужно задавать количество кластеров. Для подбора можно смотреть на сумму расстояний от точек до центров кластеров. Если сумма перестаёт резко падать, можно останавливаться. |
| 94 | +* Чувствителен к начальным случайным значениям. |
| 95 | +* Есть ограничения на форму кластеров. |
| 96 | +* Требует много вычислений. |
| 97 | + |
| 98 | +### Агломеративная (иерархическая) кластеризация |
| 99 | +Алгоритм «снизу-вверх»: |
| 100 | +1. Сначала каждая точка — центр своего кластера. |
| 101 | +2. Считаем попарные расстояния между центрами кластеров. |
| 102 | +3. Склеиваем пару ближайших кластеров в новый кластер и пересчитываем его центр. |
| 103 | +4. Повторяем пункты 2-3, пока не склеим все в один кластер. |
| 104 | + |
| 105 | +### DBSCAN |
| 106 | +Алгоритм, основанный на плотности: |
| 107 | +1. Берём случайную точку. |
| 108 | +2. Если у неё меньше $N$ соседей, то помечаем её как потенциальный выброс (noise point), и берём другую точку. |
| 109 | +3. Если соседей больше $N$: |
| 110 | + * Заводим новый кластер и помещаем точку (core point) в него. |
| 111 | + * Если сосед — потенциальный выброс или у него мало соседей, то это край кластера (border point). Заносим его в кластер и идём к другому соседу. |
| 112 | + * Если у соседа достаточно его собственных соседей, то добавляем его в кластер (core point), а его соседей заносим в очередь обхода. |
| 113 | +4. Повторяем пункты 1-3. |
| 114 | +5. Выбросы выделяем в отдельный кластер. |
| 115 | + |
| 116 | +## 3. Заключение |
| 117 | +В данной главе были рассмотрены ключевые методы уменьшения размерности данных и методы кластеризации без учителя. |
| 118 | + |
| 119 | +В следующих лекциях планируется рассмотрение нейронных сетей. |
0 commit comments