Spec-Zone.ru › scikit-learn

1.2. Линейный и квадратичный дискриминантный анализ

Линейный дискриминантный анализ (LinearDiscriminantAnalysis) и квадратичный дискриминантный анализ (QuadraticDiscriminantAnalysis) — два классических классификатора, у которых, как следует из их названий, линейная и квадратичная поверхности решений соответственно.

Эти классификаторы привлекательны, потому что они имеют замкнутые решения, которые легко вычисляются, по своей природе многоклассовые, показали хорошую работу на практике и не имеют параметров, требующих настройки.

ldaqda

На графике показаны границы решений для линейного и квадратичного дискриминантного анализа. Нижняя строка демонстрирует, что линейный дискриминантный анализ может научиться только линейным границам, в то время как квадратичный дискриминантный анализ может научиться квадратичным границам и поэтому более гибкий.

Примеры

  • Линейный и квадратичный дискриминантный анализ с эллипсом ковариации: Сравнение LDA и QDA на синтетических данных.

1.2.1. Снижение размерности с помощью линейного дискриминантного анализа

LinearDiscriminantAnalysis можно использовать для выполнения контролируемого снижения размерности, проецируя входные данные на линейное подпространство, состоящее из направлений, которые максимизируют разделяемость классов (в точном смысле, рассмотренном в разделе математики ниже). Размерность выходных данных обязательно меньше числа классов, поэтому, как правило, это достаточно сильное снижение размерности и имеет смысл только в многоклассовой постановке задачи.

Это реализовано в методе transform. Желаемую размерность можно задать с помощью параметра n_components. Этот параметр не оказывает влияния на методы fit и predict.

Примеры

  • Сравнение LDA и PCA: 2D проекция набора данных Iris: Сравнение LDA и PCA для уменьшения размерности набора данных Iris.

1.2.2. Математическая формулировка классификаторов LDA и QDA

Как LDA, так и QDA могут быть получены из простых вероятностных моделей, которые моделируют условное распределение данных \(P(X|y=k)\) для каждого класса \(k\). Предсказания затем можно получить, используя правило Байеса, для каждой тренировочной выборки \(x \in \mathcal{R}^d\):

\[P(y=k | x) = \frac{P(x | y=k) P(y=k)}{P(x)} = \frac{P(x | y=k) P(y = k)}{ \sum_{l} P(x | y=l) \cdot P(y=l)}\]

и мы выбираем класс \(k\), который максимизирует эту апостериорную вероятность.

Более конкретно, для линейного и квадратичного дискриминантного анализа, \(P(x|y)\) моделируется как многомерное нормальное распределение с плотностью:

\[P(x | y=k) = \frac{1}{(2\pi)^{d/2} |\Sigma_k|^{1/2}}\exp\left(-\frac{1}{2} (x-\mu_k)^t \Sigma_k^{-1} (x-\mu_k)\right)\]

где \(d\) — число признаков.

1.2.2.1. QDA

Согласно вышеприведенной модели, логарифм апостериорной вероятности:

\[\begin{split}\log P(y=k | x) &= \log P(x | y=k) + \log P(y = k) + Cst \\ &= -\frac{1}{2} \log |\Sigma_k| -\frac{1}{2} (x-\mu_k)^t \Sigma_k^{-1} (x-\mu_k) + \log P(y = k) + Cst,\end{split}\]

где постоянная \(Cst\) соответствует знаменателю \(P(x)\), помимо других постоянных величин из нормального распределения. Предсказанный класс — тот, который максимизирует этот логарифм апостериорной вероятности.

Примечание

Связь с гауссовским байесовским наивным классификатором

Если в модели QDA предполагается, что ковариационные матрицы диагональны, то входные данные считаются условно независимыми в каждом классе, и полученный классификатор эквивалентен классификатору гауссовского байесовского наивного классификатора naive_bayes.GaussianNB.

1.2.2.2. LDA

LDA является частным случаем QDA, где гауссовы распределения для каждого класса предполагают одинаковую ковариационную матрицу: \(\Sigma_k = \Sigma\) для всех \(k\). Это сводит логарифм апостериорной вероятности к:

\[\log P(y=k | x) = -\frac{1}{2} (x-\mu_k)^t \Sigma^{-1} (x-\mu_k) + \log P(y = k) + Cst.\]

Выражение \((x-\mu_k)^t \Sigma^{-1} (x-\mu_k)\) соответствует расстоянию Махаланобиса между выборкой \(x\) и средним значением \(\mu_k\). Расстояние Махаланобиса показывает, насколько близка \(x\) к \(\mu_k\), учитывая также дисперсию каждого признака. Таким образом, мы можем интерпретировать LDA как присвоение \(x\) тому классу, среднее значение которого является ближайшим с точки зрения расстояния Махаланобиса, учитывая также априорные вероятности классов.

Логарифм апостериорной вероятности LDA также можно записать [3] как:

\[\log P(y=k | x) = \omega_k^t x + \omega_{k0} + Cst.\]

где \(\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\) — векторы в \(\mathcal{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 можно использовать, установив параметр shrinkage класса LinearDiscriminantAnalysis в значение ‘auto’. Это автоматически определяет оптимальный параметр сжатия аналитическим способом, следуя лемме, введенной Ледоитом и Вольфом [2]. Обратите внимание, что в настоящее время сжатие работает только при установке параметра solver в ‘lsqr’ или ‘eigen’.

Параметр shrinkage также можно вручную установить в значение от 0 до 1. В частности, значение 0 соответствует отсутствию сжатия (что означает, что будет использоваться эмпирическая ковариационная матрица), а значение 1 соответствует полному сжатию (что означает, что диагональная матрица дисперсий будет использоваться как оценка ковариационной матрицы). Установка этого параметра в значение между этими двумя экстремумами позволит оценить сжатую версию ковариационной матрицы.

Сжатая оценка ковариации Ледоита и Вольфа не всегда является лучшим выбором. Например, если распределение данных является нормальным, оценка Oracle Approximating Shrinkage sklearn.covariance.OAS обеспечивает меньшую среднеквадратическую ошибку, чем оценка, полученная по формуле Ледоита и Вольфа при shrinkage=”auto”. В LDA данные предполагаются гауссовыми при условии класса. Если эти предположения верны, использование LDA с оценкой ковариации OAS даст более высокую точность классификации, чем использование оценки Ледоита и Вольфа или эмпирической оценки ковариации.

Оценщик ковариации можно выбрать, используя параметр covariance_estimator класса discriminant_analysis.LinearDiscriminantAnalysis. Оценщик ковариации должен иметь метод fit и атрибут covariance_ как все оценщики ковариации в модуле sklearn.covariance.

shrinkage

Примеры

  • Нормальный, Ledoit-Wolf и OAS линейный дискриминантный анализ для классификации: Сравнение LDA-классификаторов с эмпирическим, Ledoit-Wolf и OAS оценщиками ковариации.

1.2.5. Алгоритмы оценки

Использование LDA и QDA требует вычисления логарифмического апостериорного распределения, которое зависит от априорных вероятностей классов \(P(y=k)\), средних значений классов \(\mu_k\) и ковариационных матриц.

По умолчанию для LinearDiscriminantAnalysis используется решатель ‘svd’, и это единственный доступный решатель для 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’ основан на оптимизации отношения между рассеиванием по классам и рассеиванием внутри классов. Он может использоваться для классификации и преобразования, и он поддерживает сжатие. Однако решатель ‘eigen’ требует вычисления ковариационной матрицы, поэтому он может быть непригоден для ситуаций с большим количеством признаков.

Ссылки

[1] (1,2)

«The Elements of Statistical Learning», Hastie T., Tibshirani R., Friedman J., Раздел 4.3, стр. 106-119, 2008.

[2]

Ledoit O, Wolf M. Honey, I Shrunk the Sample Covariance Matrix. The Journal of Portfolio Management 30(4), 110-119, 2004.

[3]

R. O. Duda, P. E. Hart, D. G. Stork. Pattern Classification (Second Edition), section 2.6.2.

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/lda_qda.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API