Большая часть машинного обучения — это классификация — мы хотим знать, к какому классу или группе относится наблюдение. Возможность точной классификации наблюдений чрезвычайно ценна для различных бизнес-приложений, таких как прогнозирование того, купит ли конкретный пользователь продукт, или прогнозирование дефолта по данному кредиту.
Наука о данных предоставляет множество алгоритмов классификации, таких как логистическая регрессия, метод опорных векторов, наивный байесовский классификатор и деревья решений. Но в верхней части иерархии классификаторов находится классификатор случайного леса.
В этом посте мы рассмотрим, как работает алгоритм 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 доллар, 2 ручки стоят 2 доллара, 3 ручки стоят 6 долларов. В этом случае линейная регрессия легко оценит стоимость 4 загонов, но случайные леса не дадут хорошей оценки.
- Существует проблема интерпретируемости случайного леса. Вы не можете увидеть или понять взаимосвязь между ответом и независимыми переменными. Поймите, что случайный лес — это инструмент прогнозирования, а не описательный инструмент. Вы получаете переменную важность, но этого может быть недостаточно во многих анализах интересов, где целью может быть установление взаимосвязи между реакцией и независимыми признаками.
- Время, затрачиваемое на обучение случайных лесов, иногда может быть слишком большим, если вы обучаете несколько деревьев решений. Кроме того, в случае категориальной переменной временная сложность возрастает экспоненциально.
- В случае проблемы регрессии диапазон значений, которые может принимать переменная ответа, определяется значениями, уже доступными в наборе обучающих данных. В отличие от линейной регрессии, деревья решений и, следовательно, случайный лес не могут принимать значения вне обучающих данных.
Преимущества случайного леса
- Поскольку мы используем несколько деревьев решений, смещение остается таким же, как и у одного дерева решений. Однако дисперсия уменьшается, и, таким образом, мы уменьшаем вероятность переобучения.
- Когда все, что вам нужно, это прогнозы и хотеть быстрого и грязного выхода, случайный лес приходит на помощь. Вам не нужно сильно беспокоиться о предположениях модели или линейности в наборе данных.