Что может привести к тому, что PCA ухудшит результаты классификатора?

27

У меня есть классификатор, по которому я делаю перекрестную проверку, а также около сотни функций, по которым я делаю предварительный выбор, чтобы найти оптимальные комбинации функций. Я также сравниваю это с проведением тех же экспериментов с PCA, где я беру потенциальные особенности, применяю SVD, преобразую исходные сигналы в новое координатное пространство и использую лучшие функций в моем процессе прямого выбора.k

Моя интуиция заключалась в том, что PCA улучшит результаты, поскольку сигналы будут более «информативными», чем исходные функции. Мое наивное понимание PCA приводит меня к неприятностям? Кто-нибудь может предложить некоторые из общих причин, почему PCA может улучшить результаты в одних ситуациях, но ухудшить их в других?

Долан Антенуччи
источник
Можно ли сформулировать ваш вопрос следующим образом: «Что лучше - построить классификаторы на основе исходных переменных или нескольких основных компонентов, извлеченных из них?»
ttnphns
1
Я бы сказал больше в духе «Есть ли ситуации, когда лучше использовать исходные переменные, а не несколько основных компонентов, извлеченных из них?»
Долан Антенуччи
1
Есть много методов классификации. Если, например, взять анализ дискриминанта, я бы порекомендовал вам прочитать этот пост (включая мой собственный комментарий).
ttnphns
1
Что вы имеете в виду под «результатами классификатора»? Если это пропорция, классифицированная правильно, это прерывистое неправильное правило оценки, то есть оценка точности, которая оптимизируется фиктивной моделью. Для начала я бы предложил использовать правильное правило оценки точности.
Фрэнк Харрелл
1
Немного опоздал на вечеринку, но: первое, что я бы дважды проверил, это то, что результаты проверки прямого выбора были фактически получены с независимыми случаями. В противном случае, вы, вероятно, подвергнетесь огромному оптимистическому уклону.
cbeleites поддерживает Монику

Ответы:

29

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

Предположим, у вас есть только два (масштабированных и обесцененных) объекта, обозначьте их и с положительной корреляцией, равной 0,5, выровненной по , и третьей переменной ответа вы хотите классифицировать. Предположим, что классификация полностью определяется знаком .x 2 X Y Y x 1 - x 2x1x2XYYx1x2

Выполнение PCA на приводит к появлению новых (упорядоченных по дисперсии) функций , поскольку . Поэтому, если вы уменьшите размер до 1, т.е. первого основного компонента, вы отбросите точное решение для вашей классификации![ x 1 + x 2 , x 1 - x 2 ] Var ( x 1 + x 2 ) = 1 + 1 + 2 ρ > Var ( x 1 - x 2 ) = 2 - 2 ρX[x1+x2,x1x2]Var(x1+x2)=1+1+2ρ>Var(x1x2)=22ρ

Проблема возникает потому , что РСА является агностиком в . К сожалению, нельзя также включить в PCA, так как это приведет к утечке данных.YYY


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

Например: в финансовых временных рядах попытка предсказать европейское закрытие на конец дня, которое происходит в 11:00 по восточному поясному времени, с использованием американских закрытий на конец дня, в 16:00 по восточному поясному времени, является утечкой данных, так как американские закрываются , которые происходят часами позже, включили цены европейских закрытий.

Cam.Davidson.Pilon
источник
2
что такое "утечка данных"?
user603
@ Уэйн слишком дорогой, ха-ха
Cam.Davidson.Pilon
(-1) для возникновения путаницы: (1) PCA не контролируется, поэтому оно никогда не будет включать Y в формулировку преобразования. Соответствующим контролируемым методом является PLS, в котором используются как X, так и Y. (2) Утечка данных (например, тестирование со статистически зависимыми данными) сама по себе не следует за использованием контролируемого метода. Напротив: это будет происходить с PCA точно так же, как и с PLS, если вы не подчиняетесь правилу, согласно которому на первом этапе анализа, который использует более одного случая (например, центрирование, масштабирование, проекция PCA / PLS) для всех вычислений, необходимо быть сделано только на тренировочных данных (т.е. нужно быть ...
cbeleites поддерживает Монику
... пересчитывается для каждой из суррогатных моделей. Результаты этих расчетов затем могут быть применены к тестовым данным, то есть вычесть центр, полученный из тренировочных данных, повернуть на вращение, полученное PCA на тренировочных
кейсах
Что касается примера: временные ряды особенно сложны, поскольку то, что составляет независимый случай, будет очень сильно зависеть от приложения. См., Например, stats.stackexchange.com/questions/76376/…
cbeleites поддерживает Monica
23

Есть простое геометрическое объяснение. Попробуйте следующий пример в R и вспомните, что первый главный компонент максимизирует дисперсию.

library(ggplot2)

n <- 400
z <- matrix(rnorm(n * 2), nrow = n, ncol = 2)
y <- sample(c(-1,1), size = n, replace = TRUE)

# PCA helps
df.good <- data.frame(
    y = as.factor(y), 
    x = z + tcrossprod(y, c(10, 0))
)
qplot(x.1, x.2, data = df.good, color = y) + coord_equal()

# PCA hurts
df.bad <- data.frame(
    y = as.factor(y), 
    x = z %*% diag(c(10, 1), 2, 2) + tcrossprod(y, c(0, 8))
)
qplot(x.1, x.2, data = df.bad, color = y) + coord_equal()

PCA помогает Спс помогает

Направление максимальной дисперсии является горизонтальным, а классы разделены горизонтально.

PCA Hurts Спс больно

Направление максимальной дисперсии горизонтальное, но классы разделены вертикально

vqv
источник
... и в примере 2, контролируемый аналог, PLS действительно поможет.
cbeleites поддерживает Монику
13

PCA линейный, больно, когда вы хотите увидеть нелинейные зависимости.

Спс на изображениях как векторы: введите описание изображения здесь

Нелинейный алгоритм (NLDR), который уменьшает изображения до 2 размеров, вращения и масштаба:

введите описание изображения здесь

Больше информации: http://en.wikipedia.org/wiki/Nonlinear_dimensionality_reduction

lcrmorin
источник
3

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

Сообщение о возвращении домой (которое красиво отображается в ответе @ vqv):

Анализ главных компонентов (PCA) основан на выделении осей, по которым данные показывают наибольшую изменчивость. Хотя PCA «распространяет» данные на новой основе и может оказать большую помощь в обучении без учителя, нет никакой гарантии, что новые оси соответствуют дискриминационным признакам в (контролируемой) задаче классификации.

Для тех, кто заинтересован, если вы посмотрите на Раздел 4. Экспериментальные результаты , они сравнивают точность классификации с 1) оригинальными характеристиками, 2) преобразованными функциями PCA и 3) комбинацией обоих, что было чем-то новым для меня.

Мой вывод:

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

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

Zhubarb
источник
3

x1,x2,x3yx3=y

yx3

x1x2x3y

Donbeo
источник