Можно ли использовать анализ основных компонентов ядра (kPCA) для скрытого семантического индексирования (LSI) таким же образом, как используется PCA?
Я выполняю LSI в R с использованием prcomp
функции PCA и извлекаю функции с самыми высокими нагрузками из первых компонентов. Таким образом, я получаю функции, описывающие компонент лучше всего.
Я пытался использовать kpca
функцию (из kernlib
пакета), но не вижу, как получить доступ к весам функций для основного компонента. Возможно ли это вообще при использовании методов ядра?
r
pca
feature-selection
kernel-trick
user3683
источник
источник
Ответы:
Я думаю, что ответ на ваш вопрос отрицательный: это невозможно.
Стандартный PCA может использоваться для выбора функций, поскольку каждый основной компонент представляет собой линейную комбинацию исходных функций, и поэтому можно увидеть, какие оригинальные функции вносят наибольший вклад в наиболее заметные основные компоненты, см., Например, здесь: Использование анализа основных компонентов (PCA) для выбор функции .
Но в ядре PCA каждый главный компонент представляет собой линейную комбинацию характеристик в целевом пространстве , и, например, для ядра Гаусса (которое часто используется) целевое пространство является бесконечномерным. Таким образом, концепция «нагрузок» на самом деле не имеет смысла для kPCA, и на самом деле основные компоненты ядра вычисляются напрямую, минуя вычисление главных осей (которые для стандартного PCA даны в R
prcomp$rotation
), благодаря тому, что известно как Трюк с ядром . См., Например, здесь: Является ли ядро PCA с линейным ядром эквивалентным стандартному PCA? Больше подробностей.Так что нет, это невозможно. По крайней мере, нет простого пути.
источник
В следующем примере (взятом из справочного руководства kernlab) показано, как получить доступ к различным компонентам ядра PCA:
Отвечает ли это на ваш вопрос?
источник