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

Одним из самых популярных готовых алгоритмов всех времен является (как вы могли догадаться) Случайный лес.

Вот почему:

  • Случайные леса требуют очень небольшой подготовки ввода. Они могут обрабатывать бинарные, категорийные и числовые функции без необходимости масштабирования.
  • Случайные леса выполняют неявный выбор функций и являются отличным предсказателем релевантности функций.
  • Случайные леса очень быстро обучаются. Это гениально, когда повышение производительности повышает точность модели или наоборот. Поднастройка случайных функций, которая стремится разнообразить отдельные деревья, также является отличным повышением скорости! Уменьшая количество объектов, анализируемых в каждом узле, вы можете легко работать с наборами данных, содержащими тысячи объектов. (То же самое справедливо и для выборки строк, если ваш набор данных содержит большое количество строк.)
  • Случайные леса чрезвычайно сложно победить. Хотя можно найти модель, которая превосходит RF для любого конкретного набора данных (часто нейронная сеть или какой-либо метод повышения), это редко бывает с большим отрывом, и обычно на создание и настройку этой модели уходит значительно больше времени, чем на создание. построить случайный лес. В результате они формируют отличные эталонные модели.
  • Собрать ужасный случайный лес довольно сложно! Поскольку случайные леса не очень чувствительны к конкретным используемым гиперпараметрам, для создания хорошей модели не нужно много возиться и возиться; просто используйте огромное количество деревьев, и все будет хорошо. Для остальных параметров обычно устанавливаются соответствующие значения по умолчанию в большинстве реализаций Random Forest.
  • Универсальность. Случайный лес можно использовать для широкого круга задач моделирования: они хорошо работают для задач регрессии, они очень хорошо работают для задач классификации (и даже обеспечивают правильно откалиброванные оценки вероятности), и их можно использовать для кластерного анализа.
  • Простота. Если не конечной модели, то алгоритма обучения. Фундаментальный алгоритм обучения RF состоит всего из нескольких строк кода. В этом есть определенная ирония. Но и чувство элегантности.
  • Существует множество хороших бесплатных реализаций с открытым исходным кодом. Почти все основные библиотеки ML и наборы инструментов имеют надежную реализацию. R, scikit-learn и Weka приходят на ум как примеры отличных реализаций.
  • Как будто этого было недостаточно, случайные леса можно создавать одновременно. Усиленные модели и массивные нейронные сети — это не одно и то же.

Недостатки?

  • Самым большим недостатком Random Forests является большой размер модели. Вы можете легко получить лес, который потребляет сотни мегабайт оперативной памяти и его трудно оценить.
  • Еще одним поводом для беспокойства некоторых является то, что случайные модели леса — это черные ящики, которые трудно понять.

Заключение

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

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

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

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

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