Резюме: PCA может быть проведен до LDA, чтобы урегулировать проблему и избежать переоснащения.
Напомним, что проекции LDA рассчитываются с помощью собственного разложения , где Σ W и Σ B - ковариационные матрицы внутри и между классами. Если существует менее N точек данных (где N - размерность вашего пространства, т. Е. Количество признаков / переменных), то Σ WΣ−1WΣBΣWΣBNNΣW будет единичным и, следовательно, не может быть инвертировано. В этом случае просто нет возможности напрямую выполнить LDA, но если сначала применить PCA, он будет работать. @ Аарон сделал это замечание в комментариях к своему ответу, и я согласен с этим (но не согласен с его ответом в целом, как вы увидите сейчас).
Однако это только часть проблемы. Более общая картина заключается в том, что LDA очень легко переписывает данные. Обратите внимание, что ковариационная матрица внутри класса инвертируется в вычислениях LDA; для многомерных матриц инверсия является действительно чувствительной операцией, которая может быть надежно выполнена только в том случае, если оценка действительно хорошая. Но в больших измерениях N ≫ 1 действительно трудно получить точную оценку Σ W , и на практике часто приходится иметь гораздо больше, чем N точек данных, чтобы начать надеяться, что оценка хорошая. В противном случае Σ WΣWN≫1ΣWNΣW будет почти единичным (т. е. некоторые собственные значения будут очень низкими), и это приведет к переобучению, то есть почти идеальному разделению классов на тренировочные данные с вероятностью выполнения тестовых данных.
Чтобы решить эту проблему, нужно упорядочить проблему. Один из способов сделать это - сначала использовать PCA для уменьшения размерности. Существуют и другие, возможно, лучшие, например, метод регуляризованного LDA (rLDA), который просто использует с небольшим λ вместо Σ W (это называется оценкой усадки ), но сначала сделать PCA концептуально самый простой подход и часто работает просто отлично.(1−λ)ΣW+λIλΣW
иллюстрация
Вот иллюстрация переоснащения проблемы. Я сгенерировал 60 выборок на класс в 3 классах из стандартного гауссовского распределения (среднее ноль, единичная дисперсия) в 10-, 50-, 100- и 150-мерных пространствах и применил LDA для проецирования данных в 2D:
Обратите внимание, как с ростом размерности классы становятся лучше и лучше разделены, тогда как в действительности между классами нет никакой разницы .
Мы можем видеть, как PCA помогает предотвратить переоснащение, если мы делаем классы немного разделенными. Я добавил 1 к первой координате первого класса, 2 к первой координате второго класса и 3 к первой координате третьего класса. Теперь они немного разделены, см. Левый верхний участок:
Переоснащение (верхний ряд) все еще очевидно. Но если я предварительно обработаю данные с помощью PCA, всегда сохраняя 10 измерений (нижний ряд), перенастройка исчезнет, а классы останутся почти оптимально разделенными.
PS. Во избежание недоразумений: я не утверждаю, что PCA + LDA является хорошей стратегией регуляризации (напротив, я бы посоветовал использовать rLDA), я просто демонстрирую, что это возможная стратегия.
Обновить. Очень похожая тема была ранее обсуждена в следующих темах с интересными и исчерпывающими ответами, предоставленными @cbeleites:
Смотрите также этот вопрос с некоторыми хорошими ответами:
best practice
. PCA и LDA, как методы уменьшения размерности, очень разные. Иногда люди делают PCA до LDA, но есть риск отбросить (с отказавшимися от ПК) важные дискриминационные измерения. Вопрос, который вы задаете, на самом деле несколько раз задавался на этом сайте. Пожалуйста, найдите "PCA LDA", чтобы прочитать, что люди сказали ему.