1.2. Линейный и квадратичный дискриминантный анализ
Линейный дискриминантный анализ (LinearDiscriminantAnalysis) и квадратичный дискриминантный анализ (QuadraticDiscriminantAnalysis) — два классических классификатора с линейной и квадратичной разделяющей поверхностью соответственно, как следует из их названий.
Эти классификаторы привлекательны тем, что для них существуют решения в замкнутой форме, которые можно легко вычислить; они изначально поддерживают многоклассовую классификацию, хорошо зарекомендовали себя на практике и не имеют гиперпараметров для настройки.
На графике показаны границы решений для линейного и квадратичного дискриминантного анализа. Нижний ряд демонстрирует, что линейный дискриминантный анализ может обучать только линейные границы, тогда как квадратичный дискриминантный анализ может обучать квадратичные границы и потому является более гибким.
Примеры
- Линейный и квадратичный дискриминантный анализ с эллипсоидом ковариации: сравнение LDA и QDA на синтетических данных.
1.2.1. Снижение размерности с помощью линейного дискриминантного анализа
LinearDiscriminantAnalysis можно использовать для снижения размерности с учителем, проецируя входные данные на линейное подпространство, состоящее из направлений, которые максимизируют разделение между классами (в точном смысле, рассматриваемом ниже в разделе о математике). Размерность выходных данных неизбежно меньше числа классов, поэтому в целом такое снижение размерности довольно существенно и имеет смысл только для многоклассовой классификации.
Это реализовано в методе transform. Желаемую размерность можно задать с помощью параметра n_components. Этот параметр не влияет на методы fit и predict.
Примеры
- Сравнение двумерной проекции набора данных Iris с помощью LDA и PCA: сравнение LDA и PCA для снижения размерности набора данных Iris
1.2.2. Математическая формулировка классификаторов LDA и QDA
И LDA, и QDA можно вывести из простых вероятностных моделей, описывающих условное распределение данных для класса \(P(X|y=k)\) для каждого класса \(k\). Затем прогнозы можно получить с помощью формулы Байеса для каждого обучающего примера \(x \in \mathbb{R}^d\):
и выбрать класс \(k\), для которого эта апостериорная вероятность максимальна.
Точнее, в линейном и квадратичном дискриминантном анализе \(P(x|y)\) моделируется многомерным гауссовским распределением с плотностью:
где \(d\) — число признаков.
1.2.2.1. QDA
Согласно приведенной выше модели, логарифм апостериорной вероятности равен:
где постоянное слагаемое \(Cst\) соответствует знаменателю \(P(x)\) и другим постоянным слагаемым из гауссовского распределения. Прогнозируемым становится класс, для которого этот логарифм апостериорной вероятности максимален.
Примечание
Связь с гауссовским наивным байесовским классификатором
Если в модели QDA предположить, что матрицы ковариации диагональны, то входные признаки считаются условно независимыми в каждом классе, а полученный классификатор эквивалентен гауссовскому наивному байесовскому классификатору naive_bayes.GaussianNB.
1.2.2.2. LDA
LDA — частный случай QDA, в котором предполагается, что гауссовские распределения для каждого класса имеют одну и ту же матрицу ковариации: \(\Sigma_k = \Sigma\) для всех \(k\). В результате логарифм апостериорной вероятности принимает вид:
Слагаемое \((x-\mu_k)^T \Sigma^{-1} (x-\mu_k)\) соответствует расстоянию Махаланобиса между примером \(x\) и средним значением \(\mu_k\). Расстояние Махаланобиса показывает, насколько близко \(x\) находится к \(\mu_k\), одновременно учитывая дисперсию каждого признака. Таким образом, LDA можно интерпретировать как отнесение \(x\) к классу, среднее значение которого ближе всего по расстоянию Махаланобиса, с учетом априорных вероятностей классов.
Логарифм апостериорной вероятности для LDA также можно записать [3] в виде:
где \(\omega_k = \Sigma^{-1} \mu_k\) и \(\omega_{k0} = -\frac{1}{2} \mu_k^T\Sigma^{-1}\mu_k + \log P (y = k)\). Эти величины соответствуют атрибутам coef_ и intercept_ соответственно.
Из приведенной выше формулы очевидно, что для LDA разделяющая поверхность линейна. В случае QDA ограничения на матрицы ковариации \(\Sigma_k\) гауссовских распределений отсутствуют, что приводит к квадратичным разделяющим поверхностям. Подробнее см. [1].
1.2.3. Математическая формулировка снижения размерности с помощью LDA
Сначала отметим, что K средних значений \(\mu_k\) являются векторами в \(\mathbb{R}^d\) и лежат в аффинном подпространстве \(H\) размерности не более \(K - 1\) (2 точки лежат на прямой, 3 точки — на плоскости и т. д.).
Как отмечалось выше, LDA можно интерпретировать как отнесение \(x\) к классу, среднее значение \(\mu_k\) которого ближе всего по расстоянию Махаланобиса, с учетом априорных вероятностей классов. Кроме того, LDA эквивалентен предварительному приведению данных к сферической форме, при котором матрица ковариации становится единичной, а затем отнесению \(x\) к ближайшему среднему значению по евклидову расстоянию (также с учетом априорных вероятностей классов).
Вычисление евклидовых расстояний в этом d-мерном пространстве эквивалентно предварительному проецированию точек данных на \(H\) и вычислению расстояний там (поскольку остальные размерности будут вносить одинаковый вклад в расстояние до каждого класса). Иными словами, если \(x\) ближе всего к \(\mu_k\) в исходном пространстве, то это будет верно и в \(H\). Это показывает, что классификатор LDA неявно выполняет снижение размерности посредством линейной проекции на пространство размерности \(K-1\).
Можно еще сильнее снизить размерность до выбранного значения \(L\), спроецировав данные на линейное подпространство \(H_L\), которое максимизирует дисперсию значений \(\mu^*_k\) после проекции (фактически мы выполняем разновидность PCA для преобразованных средних значений классов \(\mu^*_k\)). Это значение \(L\) соответствует параметру n_components, используемому в методе transform. Подробнее см. [1].
1.2.4. Сжатие и оценка ковариации
Сжатие — это разновидность регуляризации, используемая для улучшения оценки матриц ковариации в ситуациях, когда число обучающих примеров невелико по сравнению с числом признаков. В этом случае эмпирическая выборочная ковариация является плохой оценкой, а сжатие помогает улучшить способность классификатора к обобщению. Сжатие можно использовать с LDA (или QDA), установив параметр shrinkage класса LinearDiscriminantAnalysis (или QuadraticDiscriminantAnalysis) в значение 'auto'. При этом оптимальный параметр сжатия автоматически определяется аналитически согласно лемме, предложенной Ледуа и Вульфом [2]. Обратите внимание, что в настоящее время сжатие работает, только если параметр solver задан как 'lsqr' или 'eigen' (для QDA реализован только 'eigen').
Параметру shrinkage также можно вручную задать значение от 0 до 1. В частности, значение 0 соответствует отсутствию сжатия (то есть используется эмпирическая матрица ковариации), а значение 1 — полному сжатию (то есть в качестве оценки матрицы ковариации используется диагональная матрица дисперсий). Значение между этими крайними значениями позволяет получить сжатую версию матрицы ковариации.
Сжатая оценка ковариации Ледуа и Вульфа не всегда может быть лучшим выбором. Например, если распределение данных является нормальным, оценка с приближением к оракулу (Oracle Approximating Shrinkage, OAS) sklearn.covariance.OAS дает меньшую среднеквадратичную ошибку, чем оценка по формуле Ледуа и Вульфа, используемой с shrinkage="auto". В LDA и QDA предполагается, что данные имеют гауссовское распределение при условии класса. Если эти предположения выполняются, использование LDA и QDA с оценкой ковариации OAS даст более высокую точность классификации, чем использование оценки Ледуа и Вульфа или эмпирической оценки ковариации.
Оценку ковариации можно выбрать с помощью параметра covariance_estimator классов discriminant_analysis.LinearDiscriminantAnalysis и discriminant_analysis.QuadraticDiscriminantAnalysis. У оценщика ковариации должен быть метод fit и атрибут covariance_, как и у всех оценщиков ковариации в модуле sklearn.covariance.
Примеры
- Нормальный, Ledoit-Wolf и OAS: линейный дискриминантный анализ для классификации: сравнение классификаторов LDA с эмпирической оценкой ковариации, оценкой Ledoit-Wolf и оценкой OAS.
1.2.5. Алгоритмы оценки
Для использования LDA и QDA необходимо вычислить логарифм апостериорной вероятности, который зависит от априорных вероятностей классов \(P(y=k)\), средних значений классов \(\mu_k\) и матриц ковариации.
Решатель ‘svd’ используется по умолчанию для LinearDiscriminantAnalysis и QuadraticDiscriminantAnalysis. Он поддерживает как классификацию, так и преобразование (для LDA). Поскольку он не требует вычисления матрицы ковариации, решатель ‘svd’ может быть предпочтителен в ситуациях с большим числом признаков. Решатель ‘svd’ нельзя использовать со сжатием. Для QDA использование решателя SVD основано на том, что матрица ковариации \(\Sigma_k\) по определению равна \(\frac{1}{n - 1} X_k^TX_k = \frac{1}{n - 1} V S^2 V^T\), где \(V\) получена из SVD-разложения (центрированной) матрицы: \(X_k = U S V^T\). Оказывается, что приведенный выше логарифм апостериорной вероятности можно вычислить, не вычисляя матрицу \(\Sigma\) явно: достаточно вычислить \(S\) и \(V\) с помощью SVD-разложения \(X\). Для LDA вычисляются два SVD-разложения: SVD-разложение центрированной входной матрицы \(X\) и SVD-разложение векторов средних значений для классов.
Решатель 'lsqr' — эффективный алгоритм, который поддерживает только классификацию. Он требует явного вычисления матрицы ковариации \(\Sigma\) и поддерживает сжатие и пользовательские оценщики ковариации. Этот решатель вычисляет коэффициенты \(\omega_k = \Sigma^{-1}\mu_k\), решая уравнение \(\Sigma \omega = \mu_k\) и тем самым избегая явного вычисления обратной матрицы \(\Sigma^{-1}\).
Решатель 'eigen' для LinearDiscriminantAnalysis основан на оптимизации отношения межклассового разброса к внутриклассовому. Его можно использовать как для классификации, так и для преобразования; он поддерживает сжатие. Для QuadraticDiscriminantAnalysis решатель 'eigen' основан на вычислении собственных значений и собственных векторов матрицы ковариации каждого класса. Он позволяет использовать сжатие для классификации. Однако решателю 'eigen' необходимо вычислять матрицу ковариации, поэтому он может быть неподходящим для ситуаций с большим числом признаков.
Литература
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/lda_qda.html
