Машинное обучение

Краткое введение в Random Forest

Что вы хотите узнать об этом мощном алгоритме машинного обучения, прежде чем начать

Что такое случайный лес?

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

Другими словами, случайный лес - это мощный, но относительно простой метод интеллектуального анализа данных и контролируемого машинного обучения. Он позволяет быстро и автоматически идентифицировать релевантную информацию из чрезвычайно больших наборов данных. Самая сильная сторона алгоритма - это что он полагается на совокупность множества прогнозов (деревьев), а не доверяет одному. С помощью Random Forest вы можете:
- C классификацию (входные = категориальные данные), каждое дерево голосует за окончательный прогноз.
- Регрессия (входные = непрерывные данные), дерево результаты усредняются для создания окончательного прогноза.

Давайте объясним это на примере из жизни.
Предположим, вы не знаете, куда поехать в следующий отпуск. Вы решаете спросить совета у своего друга Расмуса. Расмус спросит вас, где вы уже были, что вы делали и нравится вам это или нет, узнать, что вы любите делать или видеть. Основываясь на ваших ответах и ​​собственном опыте, он даст вам несколько рекомендаций. Здесь Расмус составляет дерево решений, чтобы предоставить вам наилучший возможный выбор.
Вы хотите попросить совета у других друзей, потому что думаете, что Расмус немного предвзято относится к своим интересам. Итак, чтобы принять наиболее точное решение, вы повторяете операцию с «n» другими друзьями. Они задают вам случайные вопросы, как это делал Расмус, и предлагают вам разные места, куда можно пойти. Каждый ответ подобен голосованию за то, куда идти. Есть несколько общих мест, рекомендованных вашими друзьями. Вы собираете все голоса и объединяете их. Вы решаете отправиться в место, набравшее наибольшее количество голосов. Здесь вы делаете случайный лес.

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

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

Как построить лес?

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

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

Преимущества деревьев решений

  1. Легко понять, поскольку это интуитивно понятно.
  2. Легко объяснить и визуализировать, так как это приводит к набору правил.
  3. Открыт как для числовых, так и для категориальных данных
  4. Достаточно хорошо работать с большими наборами данных
  5. Работа со скоростью света по сравнению с KNN и другими алгоритмами классификации.

Пределы дерева решений

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

Помните: переоснащение происходит, когда наша модель улавливает шум вместе с базовым шаблоном в данных. Это происходит, когда мы много тренируем нашу модель на зашумленных наборах данных. Эти модели обладают низким смещением и высоким отклонением.

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

Вместе мы стоим, раздельно - падаем

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

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

Предположим, у нас есть всего m функций.

  1. Случайным образом выберите k объектов, где km.
  2. Среди функций k вычислите узел, используя лучшую точку разделения.
  3. Разделите узел на дочерние узлы, используя лучший метод разделения.
  4. Повторите предыдущие шаги n раз.
  5. В итоге вы получите лес, состоящий из n деревьев.
  6. Объединение результатов деревьев решений вместе (т.е. бутстрэппинг).

Заключение. Почему Random Forest - такой крутой алгоритм машинного обучения?

Достаточно устойчив к выбросам и нелинейным данным

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

Неплохо справляется с несбалансированными данными

Давайте проясним, мы далеки от методов недостаточной дискретизации, передискретизации или SMOTE. Что предлагает Random Forest, так это возможность весовых классов антипропорционально их присутствию в наборе данных. Другими словами, если у вас есть класс меньшинства и класс большинства, класс меньшинства будет иметь гораздо больший вес (большая частота ошибок), чем класс большинства, чтобы сбалансировать тот факт, что он недостаточно представлен в наборе данных.

Снижение риска переобучения

Каждый отдельный набор данных начальной загрузки может иметь некорректную классификацию / регрессию. Однако, поскольку алгоритм основан на агрегации всех начальных наборов , он резко ограничивает переобучение без существенного увеличения ошибки из-за смещения. Давайте подробнее узнаем, как:

→ Обучение на подвыборках набора данных: каждое дерево решений имеет высокую дисперсию, но низкую систематическую ошибку. Но поскольку мы усредняем все деревья, мы также усредняем и дисперсию, чтобы получить низкую систематическую ошибку и более умеренную модель дисперсии.

→ Обучение на подвыборках функций
Если у нас есть 12 функций, случайные леса будут используйте только определенное количество этих функций в каждой модели. Скажем, 4 по деревьям, поэтому 8 потенциально полезных функций опускаем. Но поскольку случайный лес представляет собой набор деревьев решений, в конечном итоге будут представлены многие или все наши функции. Элементы в каждом дереве выбираются случайным образом, чтобы ограничить ошибку из-за систематической ошибки и ошибку из-за дисперсии.

У нас больше шансов поразить цель случайным лесом

Спасибо за внимание! Если вам понравилась эта статья, просто удерживайте кнопку хлопка, чтобы поддержать мое письмо. Я всегда готов поболтать и выпить виртуальный кофе, так что приходите и подписывайтесь на меня в Twitter и Linkedin.