Коли уникати випадкових лісів?


25

Випадкові ліси, як відомо, досить добре виконують різні завдання та їх називають шкірянинами методів навчання . Чи є якісь проблеми чи конкретні умови, за яких слід уникати використання випадкового лісу?


8
Привіт. "PLS - це шкіряна особа ...", "Bootstrap - шкірянка з ...", "Випадковий ліс - шкірянин з ..." <- Я раджу вам підозріло ставитися до таких претензій. Це був просто коментар :)
Стефан Лоран

Відповіді:


24

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

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

Є кілька очевидних випадків, коли випадкові ліси будуть боротися:

  • Рідкість - Коли дані дуже рідкісні, дуже правдоподібно, що для якогось вузла завантажуваний зразок та випадковий підмножина функцій будуть співпрацювати, щоб створити інваріантний простір функцій. Немає продуктивного розколу, тому дітям цього вузла навряд чи буде корисно. XGBoost може зробити краще в цьому контексті.

  • Дані не вирівнюються по осі - Припустимо, що існує діагональна межа рішення у просторі двох ознак, та . Навіть якщо це єдиний відповідний вимір для ваших даних, для опису цієї діагональної межі знадобиться звичайна випадкова лісова модель, яка розбивається. Це тому, що кожен розкол орієнтований перпендикулярно до осі або або . (Це повинно бути інтуїтивно зрозумілим, оскільки звичайна випадкова лісова модель робить розщеплення формих1х2х1х2х1>4.) Ліс обертання, який виконує проекцію PCA на підмножину функцій, вибраних для кожного розколу, може бути використаний для подолання цього: проекції на ортогональну основу, в принципі, зменшать вплив властивості, орієнтованої на осі, оскільки розбиття більше не буде вирівнюватися по осі в початковій основі.

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

  • Випадкові ліси в основному працюють лише за табличними даними,тобто не існує міцного, якісно важливого зв’язку між ознаками в сенсі даних, що є зображенням, або спостережень, об'єднаних разом на графіку. Ці структури, як правило, недостатньо наближені багатьма прямокутними перегородками. Якщо ваші дані живуть у часовому ряду, або це серія зображень, або живуть на графіку, або мають якусь іншу очевидну структуру, випадковий ліс буде дуже важко визнати це. Я не сумніваюся, що дослідники розробили варіанти методу, щоб спробувати вирішити ці ситуації, але випадковий ліс з ваніллю не обов'язково корисно підійде до цих структур. Хороша новина полягає в тому, що ви зазвичай знаєте, коли це так, тобто ви знаєте, що у вас є зображення, часовий ряд або графік, з якими можна працювати,

Я думаю, що випадкові ліси ванілі можуть розпізнати не прямокутні перегородки. Наприклад, ми можемо мати квадратичні ознаки та розпізнавати такі межі, як x ^ 2 <c.
Анірудда Ачарія

2
@AniruddhaAcharya Я сказав: "боротьба", не провал. З моєї відповіді тут чітко видно, що квадратичні ознаки не є непереборною проблемою. Але діагоналі або квадратики або інші несогласовані типи розколів вимагатимуть дерева розбиватися на ці риси знову і знову прямокутно, щоб наблизити діагональ / криву. Цей ефект можна побачити у сюжеті до цієї публікації: подивіться на гострі кути. РФ використовує квадрат для наближення кола.
Sycorax повідомляє про відновлення Моніки

Я мав на увазі подача квадратичних (та інших вищих порядків) функцій РФ зменшить боротьбу в моделюванні не прямокутних перегородок. Наприклад, ВЧ можуть використовувати 2 квадратики для наближення кола, а не використовувати квадрат. Хоча я погоджуюся, що це не так просто, як моделі, що включають взаємодію між змінними, я вважаю, що це не так вже й важко, тому що радіочастоти не обмежуються використанням порогів у сировинних функціях.
Анірудда Ачарія

1
@AniruddhaAcharya Якщо ви знаєте, що квадратні терміни - це правильна модель, вам не потрібен випадковий ліс: просто додайте квадратні доданки до лінійної моделі. RF - хороший спосіб наближення довільних функцій, особливо коли вони мають функції прийняття рішень, орієнтовані на осі.
Sycorax каже, що поверніть Моніку

Чому (квадратичні терміни) функціональна інженерія, запропонована @AniruddhaAcharya, не є корисним кроком для використання спільно з РФ? Так, ці функції можна було б додати до лінійної моделі: але остання не забезпечує поведінку поєднання внесків багатьох результатів, які індивідуально оптимізовані для різних підмножин функцій.
javadba

22

Гострі кути. Точність.

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

Ліси, що підсилюються градієнтом, можуть підходити або надмірно придатні, але можуть отримувати істотно менші похибки для тих же даних.

" Шкіряників " не існує. "Срібних куль" немає. Є панелі інструментів. Знайте свої інструменти та добре дбайте про них, щоб вони могли піклуватися про вас. Будьте обережні, "коли ти молот, то кожна проблема схожа на цвях", особливо коли у вашій панелі інструментів немає щільної бібліотеки.

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

Додано: Якщо у вас достатньо обчислювальних ресурсів або запасу часу, щоб використовувати щось інше. РФ не тільки швидко навчається, але і швидко виконує. Дуже глибока підсилена структура - це менше. Ви повинні мати накладні витрати, щоб це підтримати.


2
Щоб бути захисником диявола тут: Ніщо не буде " добре підходити до складних і дуже деталізованих речей, коли розмір вибірки невеликий ",
сказав usεr11852 Reinstate Monic

5

Це перший раз, коли я дійсно відповідаю на запитання, тому не чіпляйте мене на це .. але я думаю, що можу відповісти на ваше запитання:

Якщо вас справді цікавлять лише продуктивність моделі, а не така річ, як інтерпретація випадкових лісів, справді часто є дуже хорошим алгоритмом навчання, але ви робите трохи гірше в наступних випадках:

1.) Коли розмірність (кількість ознак) дуже велика щодо кількості навчальних зразків, у цих випадках краще регульована лінійна регресія або SVM.

2.) У випадку, якщо в даних є представлення / згорнуті структури вищого порядку, як, наприклад, у проблемах з комп'ютерним зором. У цих випадках комп’ютерного зору звивиста нейронна мережа випереджає випадковий ліс (загалом, якщо є знання, то можна включити в навчання, що є кращою справою).

Це, як кажуть, випадковий ліс - дуже хороший вихідний пункт. Один із людей, яким я захоплююсь за його навички машинного навчання, завжди починається з вивчення випадкового лісу та регульованого лінійного регресора.

Однак, якщо ви хочете якнайкращої продуктивності, я вважаю, що нині нейронні мережі. Глибоке навчання виглядає як дуже привабливий підхід. Все більше та більше переможців на веб-сайтах із викликом даних, як-от Kaggle, використовують для змагань моделі Deep Learning. Інший фактор нейронних мереж полягає в тому, що вони можуть обробляти дуже велику кількість зразків (> 10 ^ 6 можна навчити їх, використовуючи стохастичний градієнтний спуск, подаючи біти даних одночасно). Особисто я вважаю це дуже привабливим профі для глибокого навчання.


2
Приємна відповідь, але ваш останній пункт невірний: міні-пакетне навчання може бути здійснено для всіх загальних алгоритмів машинного навчання, див. Наприклад h2o .
jubo

Оке, цікаво, я цього не знав. Ви хочете сказати, що за допомогою цих методів можна навчити дерево (рішення), використовуючи міні-пакетне / SGD навчання, і таким чином побудувати єдине дерево, грунтуючись на більшій частині розбиття загальних даних про навчання (скажімо, 65%)?
MJW

1
Я думаю, що випадковий ліс все-таки повинен бути хорошим, коли кількість особливостей велика - просто не використовуйте багато функцій одразу при побудові одного дерева, і в кінці кінців у вас буде ліс незалежних класифікаторів, які колективно повинні ( сподіваюсь) робити добре.
Олексій Григорьов

Наскільки я розумію, h2o використовує парадигму зменшення карт для міні-сеансів. Поодинокі дерева (CART) не реалізовані як такі у h2o (але я вважаю, що необрізане дерево - це особливий випадок випадкового лісу, що має лише одне дерево та максимальний вибір предикторів?).
jubo

2
Яке обґрунтування для (1)? Ви заявляєте претензію, але не надаєте жодних підтверджуючих аргументів.
Sycorax каже, що повернеться Моніка

0

Перш за все, випадковий ліс не може бути застосований до таких типів даних:

  • образи
  • аудіо
  • текст (після попередньої обробки дані будуть розрідженими, а RF не працює добре з розрідженими даними)

Для табличного типу даних завжди добре перевірити випадковий ліс, оскільки:

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