Лекция 14: Снижение размерности. PCA, t-SNE и Проклятие размерности
Цели лекции
- Понять, почему “Много данных” — это не всегда хорошо (Проклятие размерности).
- Освоить PCA (Метод главных компонент) — главный инструмент сжатия данных.
- Научиться визуализировать многомерные миры с помощью t-SNE.
- Выработать интуицию: когда сжимать данные, а когда нет.
Часть 1: Проклятие Размерности (The Curse of Dimensionality)
Термин ввел математик Ричард Беллман. Он описывает феномены, возникающие при увеличении количества признаков ().
1.1. Пустота пространства
Представьте, что вы рассыпали 10 песчинок на отрезке длиной 1 метр (1D). Они лежат густо. Теперь рассыпьте те же 10 песчинок на квадратном метре (2D). Стало пустовато. Теперь рассыпьте их в кубе метр (3D). Пустота. В пространстве 100 измерений эти 10 точек будут одиноки, как звезды в галактике.
Следствие для ML
Чтобы обучить модель в 100-мерном пространстве, нужно экспоненциально больше данных, чем в 2-мерном, иначе модель переобучится (найдет закономерность там, где её нет).
1.2. Расстояния теряют смысл
В высоких размерностях Евклидово расстояние ломается. Все точки становятся примерно одинаково далеки друг от друга. Если все точки равноудалены, то алгоритм KNN (ближайшие соседи) перестает работать. Ближайший сосед ничем не отличается от самого дальнего.
Часть 2: PCA (Principal Component Analysis)
Это линейный метод снижения размерности.
Идея алгоритма
Найти такой ракурс (проекцию), при котором данные максимально “разбросаны” (имеют максимальную дисперсию).
2.1. Аналогия: Фотография чайника
Представьте 3D-чайник. Вы хотите сделать его 2D-фото.
2.2. Механика (Без жесткой математики)
- Центрирование: Сдвигаем облако точек, чтобы среднее было в нуле.
- Поиск оси: Ищем линию, вдоль которой облако вытянуто сильнее всего. Это PC1 (Первая Главная Компонента).
- Ортогональность: Ищем вторую линию, перпендикулярную первой, которая описывает оставшийся разброс. Это PC2.
- Проекция: Схлопываем остальные измерения, оставляя только координаты на PC1 и PC2.
2.3. Explained Variance (Объясненная дисперсия)
PCA говорит нам, сколько информации мы сохранили.
Пример сохранения информации
- Исходных признаков 100.
- Мы взяли 2 компоненты. PCA говорит: “Эти 2 оси объясняют 95% дисперсии”.
- Значит, остальные 98 признаков были шумом или дубликатами. Мы сжали данные в 50 раз, потеряв всего 5% сути.
Часть 3: t-SNE (t-Distributed Stochastic Neighbor Embedding)
PCA — это линейный метод. Он хорош для глобальной структуры, но плох, если данные закручены (например, “Швейцарский рулет”). PCA просто сплющит рулет в блин, смешав слои.
t-SNE — это нелинейный метод, созданный специально для визуализации.
3.1. Принцип работы
- В исходном пространстве (High-D): Алгоритм измеряет схожесть точек. Близкие точки притягиваются сильно, далекие — слабо.
- В целевом пространстве (2D): Алгоритм бросает точки случайно и начинает их двигать.
- Задача: Расставить точки в 2D так, чтобы “друзья” остались друзьями, а “враги” разлетелись подальше.
3.2. Сравнение: PCA vs t-SNE
Takeaways (Ключевые выводы)
- Проклятие размерности: Чем больше признаков, тем больше нужно данных. Лишние признаки — зло.
- PCA — главный инструмент инженера для сжатия данных перед обучением. Он убирает шум и мультиколлинеарность.
- t-SNE — мощнейший инструмент для красивой визуализации сложной структуры данных в 2D/3D, но не подходит для генерации признаков (Features) для моделей.
Золотое правило PCA
StandardScaler перед применением PCA обязателен! Иначе признак с большими числами (например, Зарплата) станет главной компонентой просто из-за своего огромного масштаба.