Практичні запитання щодо налаштування випадкових лісів


65

Мої запитання стосуються випадкових лісів. Концепція цього прекрасного класифікатора мені зрозуміла, але все ж є багато питань практичного використання. На жаль, мені не вдалося знайти жодного практичного посібника з РФ (я шукав щось на кшталт "Практичного посібника для навчання машин з обмеженою діяльністю" Больцмана "Джеффрі Хінтона, але для випадкових лісів!

Як можна настроїти РФ на практиці?

Чи правда, що більша кількість дерев завжди краща? Чи є розумний ліміт (за винятком відповідної ємності) щодо збільшення кількості дерев і як його оцінити за заданим набором даних?

А як щодо глибини дерев? Як вибрати розумне? Чи є сенс експериментувати з деревами різної довжини в одному лісі і які вказівки для цього?

Чи є якісь інші параметри, на які варто звернути увагу при навчанні РФ? Альгоси для побудови окремих дерев можуть бути?

Коли вони кажуть, що РФ стійкі до переобладнання, наскільки це правда?

Я буду вдячний за будь-які відповіді та / або посилання на посібники чи статті, які, можливо, пропустили під час пошуку.


Про налаштування перфомансу дивіться також ТА : "Як покращити продуктивність у випадковому режимі"
smci

Відповіді:


43

Я не авторитетна людина, тому врахуйте ці короткі записки практикуючих:

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

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

Найважливіший гіпер-параметр - це кількість функцій для тестування для кожного розколу. Чим більше непотрібних функцій, тим більше можливостей слід спробувати. Це потрібно налаштовувати. Ви можете налаштувати його за допомогою оцінок OOB, якщо ви просто хочете дізнатись про свою ефективність за вашими навчальними даними та немає побратимування (~ повторні заходи). Незважаючи на те, що це найважливіший параметр, його оптимальність все ще досить близька до початкових значень за замовчуванням (sqrt (p) або (p / 3) для класифікації / регресії).

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


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

Чи справді ваші "глибші дерева = краще, а все інше постійне" для надзвичайно галасливих даних із залежними структурами, які змінюються з часом, в яких лінійні зв’язки найбільш міцні, щоб не змінюватися між навчальним набором та тестовим набором?
Jase

Я міг би бачити потенціал, що дрібніші дерева стануть кращими, якщо у вас є ситуація, коли ви повинні навчитися лише мілководним відносинам, але я дуже хотів би використовувати емпіричні докази, щоб довести це (і не маю часу над цим працювати). Якщо ви вірите чи маєте доказ того, що лінійні відносини є найбільш стійкими, то я б настійно вважав щось не на основі дерева. Може бути нейронні мережі зі пропущеними шарами?
Ши Паркес

Добре скажемо, що у вас є набір даних із трьома відповідними функціями та 100 функціями, які є білим шумом та 50 точок даних. Але ви не знаєте, що таке білий шум і які актуальні достроково, ви просто знаєте, що ваші дані настільки шум, що це так. Очевидно надзвичайно мілководні дерева з великим mtry- краще, жодних доказів або емпіричних доказів для цього не потрібно.
Jase

22
  • Кількість дерев : чим більше, тим краще: так. Один із способів оцінити та знати, коли зупинитись - це відстежувати рівень помилок під час побудови лісу (чи будь-яких інших критеріїв оцінки, які ви могли б використовувати) та виявляти, коли він сходиться. Це можна зробити на самому навчальному наборі або, якщо є, на незалежному тестовому наборі. Крім того, слід зазначити, що кількість тестових вузлів у ваших деревах верхня межа обмежена кількістю об'єктів, тому якщо у вас є багато змінних і не так багато навчальних об’єктів, великий ліс дуже рекомендується для того, щоб збільшити шанси оцінити всі дескриптори хоча б раз у вашому лісі.

  • Глибина дерева : є декілька способів контролювати, наскільки глибокі ваші дерева (обмежте максимальну глибину, обмежте кількість вузлів, обмежте кількість об'єктів, необхідних для розколу, припиніть розщеплення, якщо розщеплення недостатньо покращує прилягання, ... ). Здебільшого рекомендується обрізати (обмежувати глибину) дерев, якщо ви маєте справу з галасливими даними. Нарешті, ви можете використовувати повністю розвинені дерева для обчислення продуктивності коротших дерев, оскільки це "підмножина" повністю розвинених.

  • Скільки функцій для тестування на кожному вузлі : перехресне підтвердження вашого досвіду з широким діапазоном значень (включаючи рекомендовані), ви повинні отримати криву ефективності та мати змогу визначити максимум, вказуючи, яке найкраще значення для цього параметра + Відповідь Ши Паркеса.

  • Ши Паркс згадав про Лісові дерева, ось оригінальний документ, який детально описує метод: http://orbi.ulg.ac.be/bitstream/2268/9357/1/geurts-mlj-advance.pdf

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.