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

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

Содержание

  • Что такое случайный лес?
  • Как работает случайный лес?
  • Важные особенности
  • Важные гиперпараметры
  • Пример кода
  • Плюсы и минусы случайного леса

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

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

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

Как работает случайный лес?

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

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

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

  1. Бэггинг: таким образом мы разделяем данные на различные подмножества и обучаем базовые модели, такие как деревья решений в случайном лесу, и большинство голосов за любой класс становится окончательным результатом.
  2. Повышение: таким образом мы объединяем слабых учащихся с сильными учениками и создаем последовательность модели, чтобы окончательная модель была наиболее точной для каждого ученика. Например, модели XG boost и ADA Boost.

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

Затраченные шаги

  1. Во-первых, он извлекает n подмножеств из набора данных с k количеством точек данных, которые мы называем n подмножествами.
  2. Строится n деревьев решений для обучения с использованием n подмножеств.
  3. Каждое дерево решений дает прогнозы.
  4. Окончательные прогнозы генерируются с использованием мажоритарной системы голосования для задачи классификации и системы усреднения для задачи регрессии.

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

Важные особенности

  1. Высокая устойчивость к размерности: поскольку при построении деревьев решений не учитываются все характеристики данных, весь случайный лес обеспечивает высокую производительность даже в ситуации, когда данные имеют большую размерность.
  2. Разнообразие: каждое дерево решений использует некоторые функции из данных. Вот почему процедура обучения становится разной для разных деревьев решений. В конечном итоге мы получаем более оптимальные результаты.
  3. Разделение данных: при создании случайного леса нам на самом деле не нужно плевать данные в процессе обучения и тестирования, потому что всегда будет некоторый процент данных, неизвестных для дерева решений.
  4. Стабильный: случайные леса являются стабильными алгоритмами при моделировании, поскольку для окончательного прогноза используется система голосования или усреднения.
  5. Распараллеливание: как мы знаем, каждое отдельное дерево решений использует часть основных данных. Он полностью использует ЦП для обучения случайных лесов.
  6. Отсутствие переобучения: поскольку окончательные результаты случайного леса поступают из системы голосования по большинству или усреднения, а дерево решений использует подмножества для обучения, вероятность переобучения меньше.

Важные гиперпараметры

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

  1. n_estimators — количество деревьев решений, необходимых для построения случайного леса.
  2. max_features — максимальное количество функций, которые случайный лес будет использовать из данных для разделения данных.
  3. mini_sample_leaf — минимальное количество листьев, необходимое для разделения узла дерева решений.
  4. n_jobs — мы используем его для ускорения расчета случайного леса, потому что он сообщает количество процессоров, необходимых системе для обучения модели.
  5. random_state — так же, как и для других моделей, управляет случайностью выборки.

Пример кода

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

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

из sklearn.datasets импортировать make_classification

X,y = make_classification(n_samples = 2000, n_features = 6, n_informative = 3)

print('функции данных \n',X)

print(‘data_classes\n’, y)

Выход:

Здесь мы можем видеть особенности и классы случайно сгенерированных данных. При создании данных мы создали 2000 образцов, которые имеют 6 признаков и одну целевую переменную.

Давайте построим модель

из sklearn.ensemble импортировать RandomForestClassifier

clf = RandomForestClassifier(max_depth = 4, random_state = 42)

Здесь мы создали объект с именем clf, который состоит из классификатора случайного леса. Давайте обучим модель.

clf.fit(X,y)

print('количество деревьев решений:',len(clf.estimators_))

Выход:

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

импортировать matplotlib.pyplot как plt

из дерева импорта sklearn

plt.figure(figsize=(12, 10))

tree.plot_tree(clf.estimators_[0],max_depth = 2)

plt.show()

Выход:

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

print(clf.predict([[0, 0, 0, 0, 0, 0]]))

print(clf.predict([[1, 0, 1, 0, 1, 1]]))

Выход:

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

Плюсы и минусы случайного леса

Плюсы

  1. Мы можем использовать его как для задач классификации, так и для регрессии.
  2. Это не переобучение.
  3. Он также может работать с данными, которые содержат нулевые значения.
  4. Высокая производительность с большими размерными данными.
  5. Это поддерживает разнообразие в результатах.
  6. Высокая стабильность.

Минусы

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

Заключительные слова

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

О ДСВ

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

Флагманская платформа DSW UnifyAI — это комплексная платформа с поддержкой ИИ, позволяющая корпоративным клиентам создавать, развертывать, управлять и публиковать свои модели ИИ. UnifyAI помогает вам создать бизнес-вариант использования, используя возможности ИИ и улучшая результаты аналитики.

Свяжитесь с нами по адресу [email protected] и посетите нас на www.datasciencewizards.ai