Что такое линейный дискриминантный анализ?
Линейный дискриминантный анализ (LDA, Linear Discriminant Analysis) — это статистический метод, применяемый для классификации и понижения размерности. Он используется для того, чтобы найти линейную комбинацию признаков, которая лучше всего разделяет два или более классов данных. В отличие от других методов понижения размерности, таких как PCA (Principal Component Analysis), цель LDA заключается не в сохранении дисперсии, а в максимальном разделении между классами.
🔹 Цели линейного дискриминантного анализа
-
Максимизация различий между классами: построение проекционного пространства, в котором объекты разных классов окажутся максимально удалёнными.
-
Минимизация различий внутри классов: точки одного класса в проекционном пространстве должны быть как можно ближе друг к другу.
-
Понижение размерности: эффективное уменьшение числа признаков при сохранении информации, значимой для классификации.
🔹 Теоретическая база
LDA использует информацию о метках классов, чтобы построить новые оси проекции. Он рассчитывает два типа матриц рассеяния:
1. Внутриклассовая матрица рассеяния (Within-class scatter matrix) SWS_W
Показывает, насколько сильно разбросаны данные внутри одного класса.
SW=∑i=1C∑x∈Xi(x−μi)(x−μi)TS_W = \\sum_{i=1}^{C} \\sum_{x \\in X_i} (x - \\mu_i)(x - \\mu_i)^T
где:
-
CC — количество классов,
-
XiX_i — множество точек класса ii,
-
μi\mu_i — средний вектор для класса ii.
2. Межклассовая матрица рассеяния (Between-class scatter matrix) SBS_B
Показывает, насколько далеко находятся средние значения разных классов.
SB=∑i=1CNi(μi−μ)(μi−μ)TS_B = \\sum_{i=1}^{C} N_i (\\mu_i - \\mu)(\\mu_i - \\mu)^T
где:
-
NiN_i — число объектов в классе ii,
-
μ\mu — общий средний вектор по всем данным.
🔹 Целевая функция LDA
Цель — найти проекционную матрицу WW, такую что отношение междуклассового и внутриклассового рассеяний максимально:
argmaxW ∣WTSBW∣∣WTSWW∣\underset{W}{\text{argmax}} \; \frac{|W^T S_B W|}{|W^T S_W W|}
Решение задачи даёт набор векторов ww, которые определяют новое пространство признаков. Эти векторы являются собственными векторами обобщённого собственного уравнения:
SBw=λSWwS_B w = \\lambda S_W w
🔹 Количество линейных дискриминантов
Максимально возможное число линейных дискриминантов не может превышать C−1C - 1, где CC — количество классов. Например, если есть 3 класса, то максимум можно получить 2 линейных дискриминанта.
🔹 Пример (двухклассовый случай)
Пусть есть два класса данных. LDA ищет такую прямую (направление в пространстве признаков), на которую можно спроецировать все точки так, чтобы:
-
расстояние между средними значениями двух классов на проекции было максимальным;
-
разброс точек одного класса был минимальным.
После проекции можно применить простой линейный классификатор, например, определить границу между двумя классами как середину между средними значениями проекций.
🔹 Алгоритм LDA (шаги)
-
Вычислить средние значения признаков для каждого класса.
-
Построить матрицу SWS_W — внутриклассового рассеяния.
-
Построить матрицу SBS_B — межклассового рассеяния.
-
Решить обобщённое собственное уравнение SBw=λSWwS_B w = \lambda S_W w.
-
Выбрать kk собственных векторов, соответствующих наибольшим собственным значениям λ\lambda.
-
Получить проекцию данных в новое пространство меньшей размерности.
🔹 Пример в Python (на основе scikit-learn)
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.datasets import load_iris
data = load_iris()
X = data.data
y = data.target
lda = LinearDiscriminantAnalysis(n_components=2)
X_lda = lda.fit_transform(X, y)
print(X_lda\[:5\])
🔹 Сравнение с PCA
Свойство | LDA | PCA |
---|---|---|
Тип | Линейный метод | Линейный метод |
--- | --- | --- |
Надзорность (supervised) | Да (использует метки классов) | Нет (не использует метки) |
--- | --- | --- |
Цель | Максимальное различие между классами | Максимальное сохранение дисперсии |
--- | --- | --- |
Устойчивость к переобучению | Зависит от числа классов и выборки | Может быть устойчивее при шуме |
--- | --- | --- |
Максимальная размерность | C−1C - 1, где CC — число классов | До nn или dd, в зависимости от метода |
--- | --- | --- |
🔹 Применение
-
Обработка изображений: распознавание лиц, объектов и жестов.
-
Обработка текста: классификация документов.
-
Биометрия: классификация по отпечаткам пальцев, радужной оболочке глаза.
-
Медицина: анализ ЭЭГ/ЭКГ, диагностика на основе изображений.
-
Финансы: выявление мошенничества или кластеризация транзакций.
🔹 Ограничения и предположения
-
Нормальность: предполагается, что данные в каждом классе имеют многомерное нормальное распределение.
-
Равные ковариационные матрицы: ковариация должна быть одинаковой во всех классах. Если это не так, лучше использовать QDA (Quadratic Discriminant Analysis).
-
Линейная разделимость: LDA работает лучше, если классы разделимы линейно.
-
Малое число признаков по сравнению с размером выборки: если признаков больше, чем объектов, необходимо предварительное понижение размерности (например, с помощью PCA).
🔹 Расширения и модификации
-
QDA (Quadratic Discriminant Analysis) — позволяет разным классам иметь разные ковариационные матрицы. Результирующая граница между классами — квадратичная.
-
Regularized LDA — модификация с регуляризацией, устойчивее при высокой размерности.
-
Kernel LDA — применяет ядровые методы для работы с нелинейными границами.
-
Heteroscedastic LDA — учитывает неоднородность дисперсий.
🔹 Геометрическая интерпретация
Если представить многомерные данные как облака точек, то LDA поворачивает оси координат таким образом, чтобы классы располагались вдоль различных направлений, а плотность внутри классов была высокой. Это можно рассматривать как "разжатие" между классами и "сжатие" внутри классов.