Використання аналізу основних компонентів (PCA) для вибору функцій


54

Я новачок у виборі функцій, і мені було цікаво, як ви використовуєте PCA для вибору функцій. Чи PCA обчислює відносну оцінку для кожної вхідної змінної, яку можна використовувати для фільтрації неінформативних змінних вводу? В основному, я хочу мати можливість замовити оригінальні функції в даних за відхиленням або кількістю інформації, що міститься.

Відповіді:


75

Основна ідея при використанні PCA як інструменту для вибору ознак полягає у виборі змінних відповідно до величини (від найбільшої до найменшої в абсолютних значеннях) їх коефіцієнтів ( навантажень ). Ви можете згадати, що PCA прагне замінити (більш-менш корельовані) змінні на k < p некорельовані лінійні комбінації (проекції) вихідних змінних. Нехтуємо, як вибрати оптимальний k для заданої проблеми. Ті K основні компоненти ранжуються за важливістю через їх пояснене дисперсії, і кожна змінна сприяє з різним ступенем до кожного компоненту. Використання найбільших критеріїв дисперсії було б подібним до вилучення ознакpk<pkk , де головний компонент використовується як нові функції замість оригінальних змінних. Однак ми можемо вирішити зберегти лише перший компонент і вибрати змінні, які мають найвищий абсолютний коефіцієнт; число j може базуватися на пропорції кількості змінних (наприклад, зберігати лише перші 10% p змінних) або фіксованого відсікання (наприклад, враховуючи поріг нормованих коефіцієнтів). Такий підхід має певну схожість з оператором Лассо за пенізованою регресією (або регресією PLS ). Ні значення j , ні кількість компонентів для збереження не є очевидним вибором.j<pjpj

Проблема використання PCA полягає в тому, що (1) вимірювання від усіх вихідних змінних використовуються в проекції на простір нижнього розміру, (2) розглядаються лише лінійні співвідношення і (3) методи на основі PCA або SVD. як одноманітні методи скринінгу (t-тест, кореляція тощо) не враховують потенційну багатоваріантність структури даних (наприклад, взаємодія вищих порядків між змінними).

Щодо пункту 1, були запропоновані деякі більш детальні методи скринінгу, наприклад, аналіз основних характеристик або поетапний метод, як той, який використовується для « генового гоління » в дослідженнях експресії генів. Крім того, розріджений PCA може бути використаний для зменшення розмірів і вибору змінних на основі отриманих змінних навантажень. Щодо пункту 2, можливо використовувати PCA ядра (використовуючи фокус ядра ), якщо потрібно вбудувати нелінійні зв’язки в простір нижнього розміру. Дерева рішень , а краще алгоритм випадкових лісів , ймовірно, краще вирішують пункт 3. Останнє дозволяє отримати міри, засновані на Гіні або перестановці, різного значення .

Останній пункт: Якщо ви плануєте здійснити вибір функції перед застосуванням класифікаційної або регресійної моделі, не забудьте перекреслити весь процес (див. § 7.10.2 Елементів статистичного навчання , або Ambroise and McLachlan, 2002 ).


Оскільки ви, здається, цікавитесь рішенням R, я рекомендую ознайомитись із пакетом caret, який включає в себе безліч зручних функцій для попередньої обробки даних та вибору змінних у контексті класифікації чи регресії.


1
Тут є багато хорошої інформації, але я здивований, що про EFA немає жодної згадки. Я вважаю, що факторний аналіз є доречним для вибору функції / зменшення розмірності, а PCA як дійсно підходящого лише для повторного представлення ваших даних таким чином, що змінні не мають співвідношення. Я думаю, ви не згодні?
gung - Відновіть Моніку

3
np

Це, очевидно, складне, нюансове питання. Оскільки ви знаєте про це набагато більше, ніж я, мене зацікавила ваша думка. +1, btw.
gung - Відновити Моніку

2
Два коментарі. По-перше, ви згадуєте kPCA як одне з можливих рішень у вашій точці 2. Але як kPCA можна використовувати для вибору особливостей, коли власних векторів / навантажень там немає? Є додаткове питання з цього приводу, і я стверджував, що це не може . По-друге, ваш другий перед останнім абзацом міг би значно покращитися, якби ви згадали LASSO, як кращий (?) Спосіб зробити вибір функції в регресії. Ця тема залишається дуже популярною, і багато питань закриті, як її дублікати, тому важливо, щоб ваша відповідь була максимально чудовою!
Амеба каже: Відновити Моніку

@chl, дякую за інформативну відповідь. Ви говорите про "вирішити зберегти лише перший компонент". Чому лише перший компонент? За допомогою одного компонента легко класифікувати функції / змінні. Як би ви зробили це з кількома компонентами, скажімо, 3? Як ви класифікуєте змінні за компонентами? Я думаю, ви могли пройти кожен головний компонент і вибрати функцію з найбільшим завантаженням із цього основного компонента з набору функцій, які ще не були вибрані. Вони знову можуть бути обрані числом (j) або порогом нормованих коефіцієнтів. Ви згодні?
Sother

6

Враховуючи набір N особливостей, PCA аналіз дасть (1) лінійну комбінацію ознак з найбільшою дисперсією (перший компонент PCA), (2) лінійну комбінацію з найбільшою дисперсією в ортогональному підпросторі до першого компонента PCA etcetera (за умови обмеження, що коефіцієнти комбінації утворюють вектор з одиничною нормою) Чи справді лінійна комбінація з максимальною дисперсією є "хорошою" особливістю, залежить від того, що ви намагаєтеся передбачити. З цієї причини я б сказав, що бути складовою PCA та бути "хорошими" властивостями - це взагалі два не пов'язані між собою поняття.


(-1) Я не бачу, як це взагалі відповідає на початкове запитання.
Амеба каже: Відновити Моніку

-1

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


2
Я не розумію: кожна оригінальна функція має дисперсію, і тому, безумовно, можна "замовити функції відповідно до їх дисперсії". Більше того, я не розумію, як можна їх замовити "проекцією дисперсії на певний обраний вами напрямок". Що ти маєш на увазі?
амеба каже, що поверніть Моніку

Ви дійсно можете використовувати дисперсію для замовлення функцій, саме тоді вони мають щось спільне з PCA, який обробляє всі функції разом.
Джеймс ЛІ

Про проекцію: Якщо у вас n функцій, вектор напряму - це лише одиничний вектор у n-мірному просторі; проекція ваших m-векторів екземпляра - це масштабний добуток векторного екземпляра з тим одиничним вектором, в результаті якого виходить am-розмірний вектор. І дисперсія цього m-мірного вектора полягає в тому, що "проекція" дисперсії набору даних у вибраному напрямку.
Джеймс ЛІ

1
-1. Я думаю, що кожне з трьох речень у вашій відповіді є неправильним або настільки незрозумілим, що вводить в оману. Я погоджуюся з усім, що ви написали в коментарях, але я не маю уявлення, як ваша відповідь може трактуватися, щоб це означало. "Ви не можете замовити функції відповідно до їх дисперсії" - ?? "Ви можете замовити функції лише шляхом проекції дисперсії на певний напрямок" - ?? "чи має різниця дисперсія ... залежить ..." - ?? Все це неправильно.
амеба каже, що повернеться до Моніки

2
Мені не було відомо, що це питання було задано так давно; і я згоден з більшістю цих відповідей. Моя думка: PCA не підходить для вибору функцій. Просто ніхто тут не хоче сказати це прямо.
Джеймс ЛІ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.