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

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

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

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

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

Деревья решений: деревья случайных лесов

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

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

Некоторыми из наиболее распространенных типов этого алгоритма являются деревья классификации и регрессии.

Деревья классификации

Этот метод используется для определения того, к какому «классу» скорее всего принадлежит целевая переменная. Таким образом, вы можете определить, кто будет или не будет подписываться на потоковую платформу или кто бросит колледж, а кто успешно закончит учебу.

Деревья регрессии

Дерево регрессии — это алгоритм, в котором целевая переменная не является предопределенным значением. Примером задачи регрессии является предсказание цен на жилье — непрерывная переменная. Это определяется как непрерывными параметрами, такими как площадь в квадратных метрах, так и категориальными факторами, такими как тип дома, местоположение собственности и т. д.

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

Чтобы узнать больше об этой теме, вы можете посмотреть видео ниже.

Обучение дерева решений

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

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

Если вы не знакомы с этими терминами, вы можете думать об алгоритме как о попытке разделить данные, чтобы создать наиболее однородные группы для каждого разделения.

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

Получившееся дерево и будет нашей моделью.

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

Как работает алгоритм случайного леса?

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

Давайте посмотрим, как происходит процесс шаг за шагом.

1. Разделить набор данных на подмножества

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

Есть два основных способа сделать это: вы можете случайным образом выбрать, на каких признаках обучать каждое дерево (случайные подпространства признаков), и взять выборку с заменой из выбранных признаков (начальная выборка).

2. Обучение деревьев решений

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

Может быть интересно узнать, что этот процесс обучения очень масштабируем: поскольку деревья независимы, вы можете легко распараллелить процесс обучения.

3. Обобщить результаты

Каждое отдельное дерево содержит один результат, зависящий от исходных данных дерева. Чтобы избавиться от зависимости от исходных данных и произвести более точную оценку, объединим их вывод в один результат.

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

4. Проверить модель

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

Отметим, что целью обучения является не поиск конкретного экземпляра модели, наиболее подходящего для нас. Цель состоит в том, чтобы разработать общую модель без предварительно обученных параметров и найти наиболее подходящую процедуру обучения с точки зрения метрик: точность, устойчивость к переобучению, память и другие общие параметры.

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

Проверьте этот пост, чтобы узнать больше о том, как работает проверка удержания.

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

Гиперпараметры RF

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

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

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

Деревья решений и случайные леса

Модель дерева решений принимает некоторые входные данные и выполняет ряд шагов «если-то», пока не достигнет одного из предопределенных выходных значений.

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

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

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

Дерево решений:

Алгоритм, который генерирует древовидный набор правил для классификации или регрессии.

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

Высокая зависимость от исходного набора данных; низкая точность предсказания в реальном мире в результате.

Склонен к переоснащению из-за возможности слишком сильно адаптироваться к исходному набору данных.

Случайный лес:

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

Строит деревья решений на случайных выборках данных и усредняет результаты.

Высокая точность и снижение смещения результатов.

Использование множества деревьев позволяет алгоритму избегать и/или предотвращать переоснащение.

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

Случайный лес имеет свои преимущества и недостатки. Однако первое перевешивает второе.

Преимущества

  • Экономически эффективным. RF намного дешевле и быстрее обучается по сравнению с нейронными сетями. При этом по точности он не сильно страдает. По этой причине моделирование случайного леса используется, например, в мобильных приложениях.
  • Устойчив к переоснащению. Если одно дерево делает неточный прогноз из-за выброса в своем обучающем наборе, другое, скорее всего, компенсирует этот прогноз противоположным выбросом. Таким образом, набор некоррелированных деревьев работает лучше, чем любое из отдельных деревьев, взятых по отдельности.
  • Высокий уровень охвата и низкая предвзятость. Вышеизложенное делает классификатор случайного леса идеальным для ситуаций, когда в вашем наборе данных могут быть некоторые пропущенные значения, или если вы хотите понять, насколько велики различия между различными типами выходных данных (например, студенты колледжа, которые, вероятно, закончат учебу и уйдут). , поступить в магистратуру или бросить учебу).
  • Применяется для классификации и регрессии. RF показал одинаково точные результаты для обоих типов задач.
  • Может обрабатывать отсутствующие значения в функциях, не внося смещения в прогнозы.
  • Легко интерпретировать. Каждое дерево в лесу делает прогнозы независимо друг от друга, поэтому вы можете посмотреть на каждое отдельное дерево, чтобы понять его прогноз.

Задачи

Существуют также некоторые проблемы, связанные с классификаторами случайного леса:

  • Случайные леса более сложны, чем деревья решений, где для принятия решения достаточно просто следовать по маршруту дерева.
  • Классификаторы RF, как правило, медленнее, чем некоторые другие типы моделей машинного обучения, поэтому они могут не подходить для некоторых приложений.
  • Лучше всего они работают с большими наборами данных и при наличии достаточного количества обучающих данных.

Применения случайного леса

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

Здравоохранение

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

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

Финансы и банковское дело

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

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

Фондовый рынок

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

Как вы применяете РФ в этих случаях? Например, если вы анализируете прибыльность различных акций, вы можете разделить их на группы в зависимости от их рыночной стоимости, а затем сравнить их рентабельность инвестиций. Вы будете продолжать разбивать эти группы до тех пор, пока каждая не будет содержать только один элемент или не останется элементов. Этот процесс известен как рекурсивное разбиение. Прочитайте эту статью, чтобы узнать о практической реализации написанного на Python алгоритма прогнозирования цен на акции.

Электронная коммерция

Алгоритм все чаще используется в электронной коммерции для прогнозирования продаж.

Допустим, вы пытаетесь предсказать, купит ли онлайн-покупатель товар, увидев рекламу на Facebook. В этом случае может быть только небольшое количество покупателей, которые в конечном итоге совершили покупку после просмотра рекламы (возможно, 5% купили), но было гораздо больше покупателей, которые в конечном итоге не совершили покупку (возможно, 95% не сделали).

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

История случайного леса

Неансамблевые деревья решений существуют в различных формах с 1950-х годов. Однако ни одному исследователю нельзя приписать их открытие. В 1959 году британский статистик упомянул в статье дерево решений как инструмент для классификации биологических организмов.

Статистическое сообщество постепенно развивало этот алгоритм в течение следующих десятилетий.

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

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

В настоящее время версия Бреймана используется в самых последних реализациях метода случайного леса. Статью Лео Бреймана можно прочитать здесь.

За последние годы в Random Forest был внесен ряд улучшений.

В 2004 году Робник-Шиконя уменьшил корреляцию между деревьями без потери их объяснительной силы, используя несколько мер оценки атрибутов вместо одной. Он также внес еще одно усовершенствование, изменив метод голосования с мажоритарного на взвешенное голосование. В этом процессе голосования используются внутренние оценки, чтобы найти случаи, наиболее похожие на отмеченный. Затем для этих близких ситуаций взвешивается сила голосов связанных деревьев.

Позже Сюй и соавт. придумал гибридный взвешенный RF-алгоритм для идентификации многомерных данных. Поскольку для генерации деревьев в RF использовалось несколько алгоритмов дерева решений, таких как C4.5, CART и CHAID, его назвали гибридным. Для оценки гибридной RF использовались восемь многомерных наборов данных. По сравнению с традиционным RF гибридный метод регулярно превосходил старый метод. Таким образом, классификатор случайного леса не только широко используется, но и является развивающимся методом, эффективность которого растет день ото дня.

Ключевые выводы

  1. Случайный лес — это ансамблевый алгоритм машинного обучения, основанный на агрегировании нескольких деревьев решений. Он точен, эффективен и относительно быстр в создании.
  2. RF преодолевает недостатки алгоритма дерева решений за счет уменьшения переобучения набора данных и повышения точности.
  3. Благодаря простоте использования и точности результатов он уже несколько десятилетий является одним из самых популярных алгоритмов классификации среди специалистов по данным.
  4. Он используется в различных областях, таких как финансы и банковское дело, электронная коммерция, здравоохранение и т. д. Алгоритм используется для прогнозирования таких вещей, как потребительская активность, риски, курсы акций и вероятность развития симптомов заболевания.

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

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

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

Первоначально опубликовано на https://serokell.io.

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.