PCA
tags
Principal Component Analysis
- Решает задачу снижения размерности.
- Все еще один из наиболее широко употребимых методов, которые используются.
Зачем хотим снижать размерность?
- Сложно визуализировать (хз как визуализировать 1000 мерное пространство)
- Медленно обучается (скорость подсчета линейно растет с ростом размерности пространства признаков)
- Проклятие размерности — количество равноудаленных точек растет очень быстро при увеличении размерности пространства (поэтому возникают проблемы с метрическими алгоритмами)
- Некоторые модели на больших размерностях вообще не работают, а на малых достаточно неплохо работают (например kNN — метрические операции)
Снижение размерности в общем случае:
Сингулярное разложение
Теорема экарта янга (Theorem Eckart-Young)
PCA снижает размерность пространства вдоль самой большой дисперсии, поэтому важно нормировать признаки перед этим, иначе признак с большим диапозоном значений будет иметь самую большую дисперсию.
Краткое описание от chatgpt
PCA (Principal Component Analysis) — это метод уменьшения размерности данных и поиска основных направлений их вариации.
Как это работает:
- Цель PCA:
Найти такие оси (направления), вдоль которых разброс данных максимален. - Основные шаги:
- Центрируем данные (вычитаем среднее).
- Считаем ковариационную матрицу (описывает взаимосвязь признаков).
- Вычисляем собственные векторы (направления) и собственные значения (величину разброса) ковариационной матрицы.
- Сортируем собственные векторы по убыванию собственных значений.
- Выбираем несколько первых направлений (главные компоненты).
- Результат:
Данные проецируются на несколько выбранных осей (главные компоненты), уменьшая размерность, но сохраняя как можно больше информации.
Пример:
Представьте, у вас есть облако точек в 3D. PCA найдёт новую координатную систему:
- Первая ось проходит через направление максимального разброса данных.
- Вторая — перпендикулярно первой и соответствует следующему большому разбросу.
- Третья (если есть) — остаточный разброс.
Если данные в основном лежат в плоскости, PCA может спроецировать их из 3D в 2D, потеряв минимум информации.
Применение: сжатие данных, визуализация, ускорение алгоритмов, устранение корреляций.