Случайный лес и алгоритм дерева решений

14

Случайный лес - это набор деревьев решений, следующих концепции бэгинга. Когда мы переходим от одного дерева решений к следующему дереву решений, то как информация, полученная с помощью последнего дерева решений, переходит к следующему?

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

Итак, как это работает?

Абхай Радж Сингх
источник
«Когда мы переходим от одного дерева решений к следующему дереву решений». Это предполагает линейный процесс. Мы создали параллельные реализации, где работали над одним деревом на ядро ​​процессора; это прекрасно работает, если вы не используете отдельный генератор случайных чисел для каждого ядра ЦП при обучении, все из которых имеют одинаковое начальное число. В этом случае вы можете получить множество одинаковых деревьев.
MSalters

Ответы:

23

Никакая информация не передается между деревьями. В случайном лесу все деревья распределены одинаково, поскольку деревья выращиваются с использованием одной и той же стратегии рандомизации для всех деревьев. Сначала возьмите образец начальной загрузки данных, а затем вырастите дерево, используя разбиения из случайно выбранного подмножества объектов. Это происходит для каждого дерева индивидуально, без учета других деревьев в ансамбле. Однако деревья коррелируются исключительно благодаря тому, что каждое дерево обучается на выборке из общего пула обучающих данных; несколько выборок из одного и того же набора данных будут иметь тенденцию быть похожими, поэтому деревья будут кодировать часть этого сходства.

Возможно, вам будет полезно прочитать введение в случайные леса из высококачественного текста. Один из них - «Случайные леса» Лео Бреймана. Есть также глава в Элементах Статистического Изучения Hastie et al.

Возможно, вы перепутали случайные леса с методами повышения, такими как AdaBoost или деревья с градиентным повышением. Методы повышения не одинаковы, потому что они используют информацию о несоответствии из предыдущих раундов повышения, чтобы сообщить следующий раунд повышения. Смотрите: Является ли случайный лес улучшающим алгоритмом?

Sycorax говорит восстановить Монику
источник
11

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

Возможно, вы захотите узнать, откуда происходит «случайный» случайный лес: есть два способа, которыми случайность вводится в процесс изучения деревьев. Первый случайный выбор точек данных, используемых для обучения каждого из деревьев, а второй случайный выбор признаков, используемых при построении каждого дерева. Так как одно дерево решений обычно имеет тенденцию к переопределению данных, внедрение случайности таким образом приводит к тому, что у каждого из них есть куча деревьев, в которых каждое из них имеет хорошую точность (и, возможно, переопределение) в различном подмножестве доступных обучающих данных. , Поэтому, когда мы берем среднее значение прогнозов, сделанных всеми деревьями, мы наблюдаем уменьшение переобучения (по сравнению со случаем обучения одного единственного дерева решений для всех доступных данных ).

MN

  1. язнак равно0
  2. MMSя
  3. яTяSя
    • процесс обучения аналогичен обучению дерева решений, за исключением того, что в каждом узле дерева для разделения в этом узле используется только случайный выбор признаков.
  1. язнак равноя+1
  2. я<N

T1T2TN

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

  • Если он используется для задачи классификации, используйте стратегию мягкого голосования : возьмите среднее значение вероятностей, предсказанных деревьями для каждого класса, а затем объявите класс с наибольшей средней вероятностью в качестве окончательного прогноза случайного леса.

Кроме того, стоит упомянуть, что можно обучать деревья последовательно зависимым образом, и это именно то, что делает алгоритм градиентных деревьев , который совершенно отличается от случайных лесов.

сегодня
источник
8

Случайный лес - это алгоритм упаковки, а не алгоритм повышения.

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

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

Сион Тхе Го
источник
6

Так как это работает?

Случайный лес - это коллекция деревьев решений. Деревья построены независимо. Каждое дерево обучается на подмножестве признаков и подмножестве выборки, выбранной с заменой.

При прогнозировании, скажем, для классификации, входные параметры присваиваются каждому дереву в лесу, и каждое дерево «голосует» за классификацию, при этом побеждает большинство голосов.

Зачем использовать случайный лес поверх простого дерева решений? Смещение / отклонение компромисса. Случайный лес строится из гораздо более простых деревьев по сравнению с одним деревом решений. Обычно случайные леса обеспечивают значительное уменьшение ошибок из-за дисперсии и небольшое увеличение ошибок из-за смещения.

Akavall
источник
Если мы выбираем разные функции для каждого дерева решений, то как улучшается изучение с помощью набора функций в предыдущем дереве решений, в то время как мы отправляем неверно классифицированные значения вперед, так как для следующего дерева решений существует совершенно новый набор функций?
Абхай Радж Сингх
3
@AbhayRajSingh - вы не «отправляете неправильно классифицированные значения впереди» в Random Forest. Как говорит Акавалл, «Деревья строятся независимо»
Генри
1

Да, как говорили авторы выше, алгоритм Random Forest является алгоритмом пакетирования, а не повышения.

Упаковка в мешки может уменьшить дисперсию классификатора, потому что базовые алгоритмы, которые установлены на разных выборках, и их ошибки взаимно компенсируются при голосовании. Пакетирование означает усреднение немного разных версий одной и той же модели в качестве средства улучшения прогнозирующей способности. Чтобы применить пакетирование, мы просто строим деревья B-регрессии, используя B-образные обучающие наборы, и усредняем полученные прогнозы.

Распространенное и довольно успешное применение расфасовки - Случайный Лес

Но при построении этих деревьев решений в случайном лесу каждый раз, когда рассматривается разбиение в дереве, случайная выборка mпредикторов выбирается в качестве кандидатов разделения из полного набора p предикторов. Разделение разрешено использовать только один из этих mпредикторов.

Даниэль Чепенко
источник