Машинное обучение
Краткое введение в Random Forest
Что вы хотите узнать об этом мощном алгоритме машинного обучения, прежде чем начать
Что такое случайный лес?
Согласно официальной документации: Случайный лес - это метаоценка, которая соответствует ряду классификаторов дерева решений на различных подвыборках набора данных и использует усреднение для повышения точности прогнозов и контроля над подбором. Размер подвыборки всегда такой же, как и исходный размер входной выборки, но выборки отбираются с заменой .
Другими словами, случайный лес - это мощный, но относительно простой метод интеллектуального анализа данных и контролируемого машинного обучения. Он позволяет быстро и автоматически идентифицировать релевантную информацию из чрезвычайно больших наборов данных. Самая сильная сторона алгоритма - это что он полагается на совокупность множества прогнозов (деревьев), а не доверяет одному. С помощью Random Forest вы можете:
- C классификацию (входные = категориальные данные), каждое дерево голосует за окончательный прогноз.
- Регрессия (входные = непрерывные данные), дерево результаты усредняются для создания окончательного прогноза.
Давайте объясним это на примере из жизни.
Предположим, вы не знаете, куда поехать в следующий отпуск. Вы решаете спросить совета у своего друга Расмуса. Расмус спросит вас, где вы уже были, что вы делали и нравится вам это или нет, узнать, что вы любите делать или видеть. Основываясь на ваших ответах и собственном опыте, он даст вам несколько рекомендаций. Здесь Расмус составляет дерево решений, чтобы предоставить вам наилучший возможный выбор.
Вы хотите попросить совета у других друзей, потому что думаете, что Расмус немного предвзято относится к своим интересам. Итак, чтобы принять наиболее точное решение, вы повторяете операцию с «n» другими друзьями. Они задают вам случайные вопросы, как это делал Расмус, и предлагают вам разные места, куда можно пойти. Каждый ответ подобен голосованию за то, куда идти. Есть несколько общих мест, рекомендованных вашими друзьями. Вы собираете все голоса и объединяете их. Вы решаете отправиться в место, набравшее наибольшее количество голосов. Здесь вы делаете случайный лес.
Другими словами, прежде чем принимать решение, хотите ли вы попросить рекомендации у одного человека или вы лучше спросите много разных людей и соберете все их ответы, чтобы принять решение?
Это то, что вы делаете, когда используете Random Forest. Вы расширяете возможности своей классификации / регрессии, накапливая прогнозы различных деревьев.
Как построить лес?
Деревья решений являются основой модели случайного леса. Их легко понять, поскольку они интуитивно используются каждым сознательно или бессознательно:
В мире науки о данных деревья решений разбивают набор данных по шагам (т.е. решения после решений) на более мелкие подмножества. Конечным результатом является дерево с узлами принятия решений и конечными узлами.
Преимущества деревьев решений
- Легко понять, поскольку это интуитивно понятно.
- Легко объяснить и визуализировать, так как это приводит к набору правил.
- Открыт как для числовых, так и для категориальных данных
- Достаточно хорошо работать с большими наборами данных
- Работа со скоростью света по сравнению с KNN и другими алгоритмами классификации.
Пределы дерева решений
Деревья решений просты, но довольно неточны. Одна ошибка в выборе следующего узла может привести к совершенно другому результату. Кроме того, они подвергаются высокому риску переобучения.
Помните: переоснащение происходит, когда наша модель улавливает шум вместе с базовым шаблоном в данных. Это происходит, когда мы много тренируем нашу модель на зашумленных наборах данных. Эти модели обладают низким смещением и высоким отклонением.
Таким образом, чем глубже дерево → чем оно точнее для вашего набора данных → тем выше риск переобучения.
Вместе мы стоим, раздельно - падаем
Вместо создания одного единственного дерева решений алгоритм случайного леса создает множество отдельных деревьев из случайно выбранных подмножеств набора данных. Каждое из этих отдельных деревьев генерирует классификацию / регрессию объектов в подмножестве данных.
Как это работает?
Предположим, у нас есть всего m функций.
- Случайным образом выберите k объектов, где k ‹m.
- Среди функций k вычислите узел, используя лучшую точку разделения.
- Разделите узел на дочерние узлы, используя лучший метод разделения.
- Повторите предыдущие шаги n раз.
- В итоге вы получите лес, состоящий из n деревьев.
- Объединение результатов деревьев решений вместе (т.е. бутстрэппинг).
Заключение. Почему Random Forest - такой крутой алгоритм машинного обучения?
Достаточно устойчив к выбросам и нелинейным данным
Случайный лес обрабатывает выбросы, по сути объединяя их. Также безразлично к нелинейным характеристикам.
Неплохо справляется с несбалансированными данными
Давайте проясним, мы далеки от методов недостаточной дискретизации, передискретизации или SMOTE. Что предлагает Random Forest, так это возможность весовых классов антипропорционально их присутствию в наборе данных. Другими словами, если у вас есть класс меньшинства и класс большинства, класс меньшинства будет иметь гораздо больший вес (большая частота ошибок), чем класс большинства, чтобы сбалансировать тот факт, что он недостаточно представлен в наборе данных.
Снижение риска переобучения
Каждый отдельный набор данных начальной загрузки может иметь некорректную классификацию / регрессию. Однако, поскольку алгоритм основан на агрегации всех начальных наборов , он резко ограничивает переобучение без существенного увеличения ошибки из-за смещения. Давайте подробнее узнаем, как:
→ Обучение на подвыборках набора данных: каждое дерево решений имеет высокую дисперсию, но низкую систематическую ошибку. Но поскольку мы усредняем все деревья, мы также усредняем и дисперсию, чтобы получить низкую систематическую ошибку и более умеренную модель дисперсии.
→ Обучение на подвыборках функций
Если у нас есть 12 функций, случайные леса будут используйте только определенное количество этих функций в каждой модели. Скажем, 4 по деревьям, поэтому 8 потенциально полезных функций опускаем. Но поскольку случайный лес представляет собой набор деревьев решений, в конечном итоге будут представлены многие или все наши функции. Элементы в каждом дереве выбираются случайным образом, чтобы ограничить ошибку из-за систематической ошибки и ошибку из-за дисперсии.
У нас больше шансов поразить цель случайным лесом
Спасибо за внимание! Если вам понравилась эта статья, просто удерживайте кнопку хлопка, чтобы поддержать мое письмо. Я всегда готов поболтать и выпить виртуальный кофе, так что приходите и подписывайтесь на меня в Twitter и Linkedin.