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

По сути, случайный лес – это ансамбль деревьев решений, которые были обучены с помощью методик ансамблевого обучения, чаще всего с помощью бэггинга.

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

Что такое ансамблевое обучение?

Ансамблевое обучение — это процесс объединения нескольких базовых моделей машинного обучения для получения одной оптимальной модели машинного обучения. Целью этого является повышение точности и уменьшение количества ошибок в сделанных прогнозах.

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

Несмотря на то, что существует несколько методов обучения ансамблю, в Random Forests используется один, называемый бэггинг. Чтобы узнать больше об обучении в ансамбле, нажмите здесь.

Как работает упаковка?

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

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

Итак, как же работает алгоритм Random Forest?

Алгоритм Random Forest использует метод ансамблевого обучения «бэггинг», но с небольшим изменением. Как видно выше, метод мешков создает подмножества основного набора данных. Следовательно, все деревья решений, основанные на этих подмножествах, по-прежнему разбивают данные на основе схожих признаков и, таким образом, получают схожие результаты. Таким образом, хотя данные случайны, функции, на которые разбивается дерево, по существу одинаковы.

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

Проще говоря, Random Forest следует этой процедуре:

  1. Основной набор данных разбит на подмножества a, b и c (например).
  2. Каждому подмножеству a, b и c соответствует одно дерево решений, при этом разделение происходит по различным функциям в каждом дереве, Ta, Tb и Tc.
  3. Три дерева решений Ta, Tb и Tc объединяются и создается окончательная модель Tf. Tf используется для прогнозирования будущих результатов.

Как прогнозируется результат на основе новых данных?

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

Для задач классификации в качестве окончательного прогноза выбирается класс, наиболее часто встречающийся в точке данных.

Для задач регрессии среднее значение всех значений, полученных точкой данных, назначается в качестве окончательного прогноза.

Шаг вперед

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

Случайный лес можно сделать еще дальше, введя больше вариаций — установив случайные пороги для случайных признаков в случайном наборе данных. Это называется Extremely Randomized Trees или Extra-Tree, и эта модель разбивается на случайные признаки со случайными пороговыми значениями.

Чтобы узнать больше о Extremely Randomized Trees, нажмите здесь.