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

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

В этом посте мы рассмотрим, как работает алгоритм Random Forests, и чем я так увлечен этим алгоритмом. Мне больше всего нравится объяснять этот алгоритм тем, как компания нанимает кандидата через несколько раундов собеседований.

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

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

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

Здесь есть два ключевых слова — Случайные и Леса. Случайный лес или случайный лес решений представляют собой наборы деревьев решений. От слова «лес» — совокупность деревьев, так что «случайный лес» — это совокупность многих деревьев решений, скажем, 100 из них.

Почему он называется случайным?

Предположим, у нас есть набор данных из 1000 строк и 30 столбцов. В этом алгоритме есть два уровня случайности:

  • На уровне строки: каждое из этих деревьев решений получает случайную выборку обучающих данных (скажем, 10%), т. е. каждое из этих деревьев будет обучаться независимо на 100 случайно выбранных строках из 1000 строк данных. Имейте в виду, что каждое из этих деревьев решений обучается на 100 случайно выбранных строках из набора данных, т. е. они отличаются друг от друга с точки зрения прогнозов.
  • На уровне столбца. Второй уровень случайности вводится на уровне столбца. Не все столбцы передаются в обучение каждого из деревьев решений. Скажем, мы хотим, чтобы в каждое дерево было отправлено только 10% столбцов. Это означает, что каждому дереву будут отправлены случайно выбранные 3 столбца. Итак, для первого дерева решений, возможно, были выбраны столбцы C1, C2 и C4. Следующее DT будет иметь C4, C5, C10 в качестве выбранных столбцов и так далее.

Позвольте мне провести аналогию. Давайте теперь поймем, чем процесс выбора интервью напоминает алгоритм случайного леса. Каждая панель в процессе интервью на самом деле представляет собой дерево решений. Каждая панель дает результат независимо от того, прошел ли кандидат или нет, и затем большинство этих результатов объявляются окончательными. Скажем, было 5 панелей, 3 ответили да, а 2 сказали нет. Окончательный вердикт будет да.

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

Недостатки случайных лесов

  1. Случайные леса плохо обучаются на небольших наборах данных, так как не могут выбрать шаблон. Для упрощения предположим, что мы знаем, что 1 ручка стоит 1 доллар, 2 ручки стоят 2 доллара, 3 ручки стоят 6 долларов. В этом случае линейная регрессия легко оценит стоимость 4 загонов, но случайные леса не дадут хорошей оценки.
  2. Существует проблема интерпретируемости случайного леса. Вы не можете увидеть или понять взаимосвязь между ответом и независимыми переменными. Поймите, что случайный лес — это инструмент прогнозирования, а не описательный инструмент. Вы получаете переменную важность, но этого может быть недостаточно во многих анализах интересов, где целью может быть установление взаимосвязи между реакцией и независимыми признаками.
  3. Время, затрачиваемое на обучение случайных лесов, иногда может быть слишком большим, если вы обучаете несколько деревьев решений. Кроме того, в случае категориальной переменной временная сложность возрастает экспоненциально.
  4. В случае проблемы регрессии диапазон значений, которые может принимать переменная ответа, определяется значениями, уже доступными в наборе обучающих данных. В отличие от линейной регрессии, деревья решений и, следовательно, случайный лес не могут принимать значения вне обучающих данных.

Преимущества случайного леса

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