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


Когда у нас есть набор переменных-предикторов и мы хотим классифицировать переменную ответа в один из двух классов, мы обычно используем логистическую регрессию .

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

LDA предполагает, что (1) наблюдения из каждого класса нормально распределены и (2) наблюдения из каждого класса имеют одну и ту же ковариационную матрицу. Затем, используя эти предположения, LDA находит следующие значения:

  • μ k : Среднее значение всех обучающих наблюдений из k -го класса.
  • σ 2 : средневзвешенное значение выборочных дисперсий для каждого из k классов.
  • π k : Доля обучающих наблюдений, принадлежащих k -му классу.

Затем LDA подставляет эти числа в следующую формулу и присваивает каждому наблюдению X = x класс, для которого формула дает наибольшее значение:

D k (x) = x * (µ k /σ 2 ) – (µ k 2 /2σ 2 ) + log(π k )

LDA имеет линейное название, потому что значение, полученное вышеприведенной функцией, является результатом линейной функции x.

Расширением линейного дискриминантного анализа является квадратичный дискриминантный анализ , часто называемый QDA.

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

То есть предполагается, что наблюдение из k -го класса имеет форму X ~ N(µ k , Σ k ).

Затем, используя это предположение, QDA находит следующие значения:

  • μ k : Среднее значение всех обучающих наблюдений из k -го класса.
  • Σ k : Ковариационная матрица k -го класса.
  • π k : Доля обучающих наблюдений, принадлежащих k -му классу.

Затем QDA подставляет эти числа в следующую формулу и присваивает каждому наблюдению X = x класс, для которого формула дает наибольшее значение:

D k (x) = -1/2*(x-µ k ) T Σ k -1 (x-µ k ) – 1/2*log|Σ k | + журнал (π k )

Обратите внимание, что в названии QDA есть квадратичный , потому что значение, полученное приведенной выше функцией, получается из результата квадратичных функций от x.

LDA против QDA: когда использовать один против другого

Основное различие между LDA и QDA заключается в том, что LDA предполагает, что каждый класс имеет общую ковариационную матрицу, что делает его гораздо менее гибким классификатором, чем QDA.

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

QDA обычно предпочтительнее LDA в следующих ситуациях:

(1) Обучающая выборка большая.

(2) Маловероятно, что классы K имеют общую ковариационную матрицу.

Когда эти условия выполняются, QDA, как правило, работает лучше, поскольку он более гибкий и может обеспечить лучшее соответствие данным.

Как подготовить данные для QDA

Прежде чем применять к ним модель QDA, убедитесь, что ваши данные соответствуют следующим требованиям:

1. Переменная ответа является категориальной.Модели QDA предназначены для использования в задачах классификации , т. е. когда переменная ответа может быть помещена в классы или категории.

2. Наблюдения в каждом классе подчиняются нормальному распределению.Во-первых, проверьте, что каждое распределение значений в каждом классе примерно нормально распределено. Если это не так, вы можете сначала преобразовать данные , чтобы сделать распределение более нормальным.

3. Учитывайте крайние выбросы. Перед применением LDA обязательно проверьте наличие экстремальных выбросов в наборе данных. Как правило, вы можете визуально проверить выбросы, просто используя диаграммы рассеяния или диаграммы рассеяния .

QDA в R и Python

В следующих руководствах представлены пошаговые примеры выполнения квадратичного дискриминантного анализа в R и Python:

Квадратичный дискриминантный анализ в R (шаг за шагом)
Квадратичный дискриминантный анализ в Python (шаг за шагом)

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.