Випадковий алгоритм лісу та дерева рішень


14

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

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

То як це працює?


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

Відповіді:


23

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

Вам може бути корисним прочитати вступ до випадкових лісів з високоякісного тексту. Один - «Випадкові ліси» Лео Брейман. Також є розділ Елементи статистичного навчання Hastie та ін.

Можливо, ви переплутали випадкові ліси з такими методами прискорення, як AdaBoost або дерева, що підсилюють градієнт. Способи прискорення не однакові, оскільки вони використовують інформацію про невідповідність попередніх раундів підсилення, щоб повідомити про наступний раунд прискорення. Дивіться: Чи випадковий ліс є алгоритмом підвищення?


11

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

Можливо, ви хочете знати, звідки походить "випадковий" у випадковому лісі: є два способи, за допомогою яких випадковість вводиться у процес вивчення дерев. По-перше, це випадковий вибір точок даних, що використовуються для навчання кожного з дерев, а другий - випадковий вибір функцій, що використовуються при побудові кожного дерева. Оскільки одне дерево рішень зазвичай має перевагу над даними, ін'єкція випадковості таким чином призводить до того, що існує дерево дерев, де кожне з них має хорошу точність (і, можливо, перевищення) для іншого підмножини наявних навчальних даних . Тому, коли ми беремо середнє значення прогнозів, зроблених усіма деревами, ми спостерігатимемо зменшення перевитрати (порівняно з випадком навчання одного дерева рішень за всіма наявними даними ).

Щоб краще зрозуміти це, ось приблизний ескіз навчального процесу, припускаючи, що всі точки даних зберігаються у наборі, позначеному а кількість дерев у лісі - :MN

  1. i=0
  2. Візьме зразок boostrap з (тобто вибірки з заміною і з таким же розміром , як ) , який позначається .MMSi
  3. Повчайте -е дерево, позначене як , використовуючи в якості вхідних даних. iTiSi
    • тренувальний процес такий самий, як і тренування дерева рішень, за винятком різниці, що для кожного вузла в дереві використовується лише випадковий вибір функцій для розбиття цього вузла.
  1. i=i+1
  2. якщо перейдіть до кроку 2, інакше всі дерева пройшли навчання, тож випадкове навчання лісу закінчено.i<N

Зауважте, що я описав алгоритм як послідовний алгоритм, але оскільки навчання дерев не залежить одне від одного, ви також можете робити це паралельно. Тепер для кроку прогнозування спочатку зробіть прогноз для кожного дерева (тобто , , ..., ) у лісі, а потім:T1T2TN

  • Якщо він використовується для регресійного завдання, сприймайте середнє значення прогнозів як остаточне передбачення випадкового лісу.

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

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


8

Випадковий ліс - це алгоритм мішковування, а не алгоритм підвищення.

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

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


6

То як це працює?

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

При прогнозуванні, скажімо, для Класифікації, вхідні параметри даються кожному дереву в лісі, і кожне дерево "голосує" за класифікацією, мітка з більшістю голосів виграє.

Навіщо використовувати випадковий ліс над простим деревом рішень? Зсув / Варіантний торг. Випадкові ліси будуються з набагато простіших дерев порівняно з одним деревом рішення. Як правило, випадкові ліси забезпечують велике зменшення помилок через дисперсію та невелике збільшення помилок через упередженість.


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

3
@AbhayRajSingh - у "Випадковому лісі" ви не "надсилаєте заздалегідь розроблені значення". Як каже Акавал, «Дерева будуються самостійно»
Генрі

1

Так, як говорили вище автори, алгоритм Random Forest - це алгоритм мішковиння, а не прискорення.

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

Поширеним і досить успішним застосуванням забоїв є випадковий ліс

Але, будуючи ці дерева рішень у випадкових лісах, кожен раз, коли розглядається розкол на дереві, mвибирається випадкова вибірка провісників як розділених кандидатів з повного набору p-предикторів. Розкол може використовувати лише один із цих mпрогнозів.

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