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

Решение, предложенное Фишером, состоит в том, чтобы максимизировать функцию, которая представляет разницу между средними значениями, нормализованную по мере дисперсии внутри классов.

Предположим, у нас есть набор данных с n точками данных и d функциями. Каждая точка данных принадлежит одному из k классов.

Среднее значение для каждого класса:

Затем нам нужно будет рассчитать матрицы рассеяния.

Матрица рассеяния внутри класса S𝓌, которая измеряет разброс данных внутри каждого класса и вычисляется как сумма отдельных матриц рассеяния для каждого класса.

Матрица рассеяния между классами SB, которая количественно определяет разделение между средними классами и вычисляется как сумма внешнего произведения разницы между средними классами и общим средним значением.

Мы ищем проекцию, которая максимизирует межклассовую дисперсию и минимизирует внутриклассовую дисперсию.

Используя правило Фишера, поиск оптимальных направлений проекции происходит путем решения задачи оптимизации:

Где λ — собственные значения, а W — собственные векторы из предыдущей формы.

Количество ненулевых собственных значений не превышает (k − 1), где k — количество классов. Эти собственные значения представляют собой направления максимальной разделимости классов.

После этого нам нужно отсортировать собственные векторы по соответствующим собственным значениям в порядке убывания. Мы выберем верхние (k − 1)собственные векторы, чтобы сформировать матрицу преобразованияW.

Умножение исходной матрицы данныхX (размеры(n x d)) на матрицу преобразования W (размеры (d x (k − 1)) )), чтобы получить преобразованную матрицу данных X(LDA) (размеры (n x (k − 1))).

Преобразованные данные X(LDA) — это сокращенное представление, полученное с помощью LDA, которое максимизирует разделимость классов при минимизации количества измерений. Это новое представление затем можно использовать для целей классификации или визуализации в задачах обучения с учителем.

Ограничения LDA

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

  • Для этого требуется, чтобы S𝓌 было неособым, а это означает, что

  • LDA — параметрический метод, поскольку он неявно предполагает унимодальные гауссовы распределения. Если распределения отклоняются от гауссова, проекции LDA могут оказаться не в состоянии сохранить какую-либо сложную структуру данных, которая может быть необходима для классификации.

  • LDA создает не более (k − 1) прогнозируемых функций. Если предполагаемая ошибка классификации слишком велика, нам понадобится больше функций, и нам придется использовать другой метод, предоставляющий эти дополнительные функции.

Пример Python

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

Далее мы предоставим некоторую информацию о данных и описаниях.

Мы отделяем целевой столбец от остальных переменных-предикторов.

Теперь мы собираемся вычислить взаимную информацию между функциями и целевой переменной, используя mutual_info_classif из модуля FS (выбор функций).

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

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

Теперь мы повторим то же самое, но вместо этого будем использовать mutal_info_reгрессию. Это тот же результат, но он больше подходит для задач регрессии. Мы проверим на случай, если нам не хватает какой-либо информации.

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

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

Мы сделаем то же самое, но вместо этого будем использовать критерий хи-квадрат. Затем он сортирует показатели статистики хи-квадрат в порядке убывания, печатает отсортированные индексы и отображает индекс, статистику хи-квадрат и имя каждого признака на основе отсортированного порядка. Функции с более высокой статистикой хи-квадрат имеют более сильную связь с целевой переменной.

Линейный дискриминантный анализ (LDA) в Python с использованием sklearn

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

Таким образом, мы убедились, что LDA инвариантен к масштабу.

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

Ссылки

  1. Дж. Джеймс, Д. Виттен, Т. Хасти, Р. Тибширани. Введение в статистическое обучение. Тексты Спрингера в статистике. 2013.
  2. Т. Хасти, Р. Тибширани, Дж. Фридман. Элементы статистического обучения. Серия Спрингера по статистике.