Что такое линейный дискриминантный анализ?


Линейный дискриминантный анализ (LDA, Linear Discriminant Analysis) — это статистический метод, применяемый для классификации и понижения размерности. Он используется для того, чтобы найти линейную комбинацию признаков, которая лучше всего разделяет два или более классов данных. В отличие от других методов понижения размерности, таких как PCA (Principal Component Analysis), цель LDA заключается не в сохранении дисперсии, а в максимальном разделении между классами.

🔹 Цели линейного дискриминантного анализа

  1. Максимизация различий между классами: построение проекционного пространства, в котором объекты разных классов окажутся максимально удалёнными.

  2. Минимизация различий внутри классов: точки одного класса в проекционном пространстве должны быть как можно ближе друг к другу.

  3. Понижение размерности: эффективное уменьшение числа признаков при сохранении информации, значимой для классификации.

🔹 Теоретическая база

LDA использует информацию о метках классов, чтобы построить новые оси проекции. Он рассчитывает два типа матриц рассеяния:

1. Внутриклассовая матрица рассеяния (Within-class scatter matrix) SWS_W

Показывает, насколько сильно разбросаны данные внутри одного класса.

SW=i=1CxXi(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 (шаги)

  1. Вычислить средние значения признаков для каждого класса.

  2. Построить матрицу SWS_W — внутриклассового рассеяния.

  3. Построить матрицу SBS_B — межклассового рассеяния.

  4. Решить обобщённое собственное уравнение SBw=λSWwS_B w = \lambda S_W w.

  5. Выбрать kk собственных векторов, соответствующих наибольшим собственным значениям λ\lambda.

  6. Получить проекцию данных в новое пространство меньшей размерности.

🔹 Пример в 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, в зависимости от метода
--- --- ---

🔹 Применение

  • Обработка изображений: распознавание лиц, объектов и жестов.

  • Обработка текста: классификация документов.

  • Биометрия: классификация по отпечаткам пальцев, радужной оболочке глаза.

  • Медицина: анализ ЭЭГ/ЭКГ, диагностика на основе изображений.

  • Финансы: выявление мошенничества или кластеризация транзакций.

🔹 Ограничения и предположения

  1. Нормальность: предполагается, что данные в каждом классе имеют многомерное нормальное распределение.

  2. Равные ковариационные матрицы: ковариация должна быть одинаковой во всех классах. Если это не так, лучше использовать QDA (Quadratic Discriminant Analysis).

  3. Линейная разделимость: LDA работает лучше, если классы разделимы линейно.

  4. Малое число признаков по сравнению с размером выборки: если признаков больше, чем объектов, необходимо предварительное понижение размерности (например, с помощью PCA).

🔹 Расширения и модификации

  • QDA (Quadratic Discriminant Analysis) — позволяет разным классам иметь разные ковариационные матрицы. Результирующая граница между классами — квадратичная.

  • Regularized LDA — модификация с регуляризацией, устойчивее при высокой размерности.

  • Kernel LDA — применяет ядровые методы для работы с нелинейными границами.

  • Heteroscedastic LDA — учитывает неоднородность дисперсий.

🔹 Геометрическая интерпретация

Если представить многомерные данные как облака точек, то LDA поворачивает оси координат таким образом, чтобы классы располагались вдоль различных направлений, а плотность внутри классов была высокой. Это можно рассматривать как "разжатие" между классами и "сжатие" внутри классов.