PCA на текстових даних з великими розмірами до випадкової лісової класифікації?


14

Чи є сенс робити PCA перед проведенням випадкової лісової класифікації?

Я маю справу з текстовими даними з високими розмірами, і я хочу зробити зменшення функції, щоб уникнути прокляття розмірності, але чи не випадкові ліси вже мають якесь зменшення розмірності?


7
Алгоритм РЧ насправді не страждає від великої кількості предикторів, оскільки mtryдля створення кожного дерева використовується лише випадкова підмножина їх (так званий параметр). Існує також рекурсивна методика усунення особливостей, побудована на основі алгоритму ВЧ (див. Пакет varSelRF R та посилання на нього). Однак, безумовно, можна додати початкову схему скорочення даних, хоча це має бути частиною перехресної перевірки. Отже, питання: чи хочете ви ввести лінійну комбінацію ваших особливостей у РФ?
chl

Скільки функцій / розмірів, F? > 1К? > 10K? Чи є функції дискретні чи безперервні, наприклад, термін-частота, tfidf, показники подібності, слова вектори чи що? Час виконання PCA є квадратичним для F.
smci


Сильно пов’язані: stats.stackexchange.com/questions/258938
каже, що

Відповіді:


12

Лео Бріман писав, що "розмірність може бути благом". Загалом, випадкові ліси можуть без проблем працювати на великих наборах даних. Наскільки великі ваші дані? Різні поля обробляють речі по-різному, залежно від знань про предмет. Наприклад, у дослідженнях експресії генів гени часто відкидаються на основі низької дисперсії (не визираючи на результат) у процесі, який іноді називають неспецифічним фільтруванням. Це може допомогти в часі роботи на випадкових лісах. Але це не потрібно.

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

Підсумовуючи, не потрібно робити PCA перед запуском RF. Але можна. Інтерпретація може змінюватися залежно від ваших цілей. Якщо все, що ви хочете зробити, це передбачити, інтерпретація може бути менш важливою.


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

9

Я хотів би додати свої два центи до цього, оскільки вважав, що наявні відповіді є неповними.

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

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

Дерева рішень чутливі до обертання даних, оскільки межа рішень, яку вони створюють, завжди вертикальна / горизонтальна (тобто перпендикулярна одній з осей). Тому, якщо ваші дані виглядають як на лівій фотографії, для розділення цих двох кластерів знадобиться набагато більше дерево (в даному випадку це 8-шарове дерево). Але якщо ви вирівняєте свої дані за основними компонентами (наприклад, на правій картинці), ви можете домогтися ідеального розділення лише одним шаром!

Звичайно, не всі набори даних поширюються так, тому PCA може не завжди допомогти, але все ж корисно спробувати його і побачити, чи є це. І лише нагадування, не забудьте нормалізувати ваш набір даних до дисперсії одиниці перед виконанням PCA!

PS: Що стосується зменшення розмірності, я погоджуся з іншими людьми в тому, що зазвичай це не така велика проблема для випадкових лісів, як для інших алгоритмів. Але все-таки це може допомогти трохи прискорити навчання. Час тренування дерева рішень - O (n m log (m)), де n - кількість навчальних екземплярів, m - кількість вимірів. І хоча випадкові ліси випадковим чином вибирають підмножину розмірів для кожного дерева, на якому навчаються, чим менша частка від загальної кількості вибраних вами розмірів, тим більше дерев потрібно тренувати для досягнення хороших показників.

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


1

PCA перед випадковим лісом може бути корисним не для зменшення розмірності, а для надання даних форми, де випадковий ліс може працювати краще.

Я впевнений, що загалом, якщо ви перетворите свої дані за допомогою PCA, зберігаючи однакові розміри вихідних даних, у вас буде краща класифікація з випадковим лісом


Час виконання PCA є квадратичним за кількістю функцій F, тому це не завжди дешево.
smci

під perfomances я мав на увазі передбачення. Я не мав на увазі обчислювальний час
Донбео

2
Чи можете ви додати якісь обгрунтування до своїх претензій? Схоже, PCA не завжди покращить результати. Наприклад, коли межа рішення є інваріантною обертанням (наприклад, коло), виконання PCA буде просто масштабувати і обертати дані (і, отже, коло), але РФ все одно доведеться наближати еліптичну межу з безліччю прямокутних розбитків.
Sycorax каже, що повернеться до Моніки
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.