В машинном обучении с учителем существует множество моделей машинного обучения, таких как линейная регрессия, логистическая регрессия, дерево решений и другие. мы используем эти модели для решения проблем классификации или регрессии, а ансамблевое обучение является частью обучения с учителем, которое дает нам модели, построенные с использованием нескольких базовых моделей. Случайный лес — одна из тех моделей ансамблевого обучения, которые популярны в области науки о данных благодаря своей высокой производительности.
Технически модели случайного леса строятся поверх деревьев решений, и мы уже рассмотрели основы дерева решений в одной из наших статей, поэтому мы рекомендуем прочитать статью один раз, чтобы четко понять тему этой статьи. В этой статье мы поговорим о случайных лесах, используя следующие моменты.
Содержание
- Что такое случайный лес?
- Как работает случайный лес?
- Важные особенности
- Важные гиперпараметры
- Пример кода
- Плюсы и минусы случайного леса
Что такое случайный лес?
Случайный лес — это контролируемый алгоритм машинного обучения, который относится к методу ансамблевого обучения. В машинном обучении с учителем случайный лес можно использовать для решения задач как классификации, так и регрессии.
Как обсуждалось выше, он относится к методу ансамблевого обучения, поэтому он работает поверх многих деревьев решений. Можно сказать, что деревья решений являются базовой моделью случайного леса. Алгоритм просто строит множество деревьев решений на разных выборках данных, а с помощью системы мажоритарного голосования решает проблему классификации. В случае регрессии используется среднее значение деревьев решений.
Как работает случайный лес?
Когда мы говорим о работе случайного леса, мы можем сказать, что он дает результаты, объединяя результаты многих деревьев решений. Здесь, если мы говорим о проблеме классификации, каждое дерево решений предсказывает результат, и то, что класс получает большинство голосов, становится окончательным результатом случайного леса. Давайте посмотрим на изображение ниже.
Когда мы говорим о работе случайного леса, мы можем сказать, что он дает результаты, объединяя результаты многих деревьев решений. Здесь, если мы говорим о проблеме классификации, каждое дерево решений предсказывает результат, и то, что класс получает большинство голосов, становится окончательным результатом случайного леса. Давайте посмотрим на изображение ниже.
Приведенное выше изображение также дает представление о методе ансамблевого обучения, где окончательный прогноз делается путем объединения результатов нескольких других моделей. Технику ансамблевого обучения можно использовать двумя способами:
- Бэггинг: таким образом мы разделяем данные на различные подмножества и обучаем базовые модели, такие как деревья решений в случайном лесу, и большинство голосов за любой класс становится окончательным результатом.
- Повышение: таким образом мы объединяем слабых учащихся с сильными учениками и создаем последовательность модели, чтобы окончательная модель была наиболее точной для каждого ученика. Например, модели XG boost и ADA Boost.
Случайный лес в ансамблевом обучении использует метод мешков. Можно сказать, что каждое дерево решений в случайном лесу использует несколько выборок из всех обучающих данных для обучения и получения прогнозов. Давайте поговорим об этапах обучения алгоритма случайного леса.
Затраченные шаги
- Во-первых, он извлекает n подмножеств из набора данных с k количеством точек данных, которые мы называем n подмножествами.
- Строится n деревьев решений для обучения с использованием n подмножеств.
- Каждое дерево решений дает прогнозы.
- Окончательные прогнозы генерируются с использованием мажоритарной системы голосования для задачи классификации и системы усреднения для задачи регрессии.
Используя вышеуказанные четыре шага, работа над случайным лесом завершается. Далее давайте обсудим важные особенности случайного леса.
Важные особенности
- Высокая устойчивость к размерности: поскольку при построении деревьев решений не учитываются все характеристики данных, весь случайный лес обеспечивает высокую производительность даже в ситуации, когда данные имеют большую размерность.
- Разнообразие: каждое дерево решений использует некоторые функции из данных. Вот почему процедура обучения становится разной для разных деревьев решений. В конечном итоге мы получаем более оптимальные результаты.
- Разделение данных: при создании случайного леса нам на самом деле не нужно плевать данные в процессе обучения и тестирования, потому что всегда будет некоторый процент данных, неизвестных для дерева решений.
- Стабильный: случайные леса являются стабильными алгоритмами при моделировании, поскольку для окончательного прогноза используется система голосования или усреднения.
- Распараллеливание: как мы знаем, каждое отдельное дерево решений использует часть основных данных. Он полностью использует ЦП для обучения случайных лесов.
- Отсутствие переобучения: поскольку окончательные результаты случайного леса поступают из системы голосования по большинству или усреднения, а дерево решений использует подмножества для обучения, вероятность переобучения меньше.
Важные гиперпараметры
Выше мы обсудили работу и особенности случайных лесов, здесь мы обсудим важные гиперпараметры любого случайного леса, с помощью которых мы можем управлять случайным лесом, повышая его производительность и ускоряя его работу или вычисления.
- n_estimators — количество деревьев решений, необходимых для построения случайного леса.
- max_features — максимальное количество функций, которые случайный лес будет использовать из данных для разделения данных.
- mini_sample_leaf — минимальное количество листьев, необходимое для разделения узла дерева решений.
- n_jobs — мы используем его для ускорения расчета случайного леса, потому что он сообщает количество процессоров, необходимых системе для обучения модели.
- 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]]))
Выход:
Теперь результаты модели перед нами, и вот как мы можем реализовать базовый случайный лес. Давайте посмотрим на плюсы и минусы алгоритма случайного леса.
Плюсы и минусы случайного леса
Плюсы
- Мы можем использовать его как для задач классификации, так и для регрессии.
- Это не переобучение.
- Он также может работать с данными, которые содержат нулевые значения.
- Высокая производительность с большими размерными данными.
- Это поддерживает разнообразие в результатах.
- Высокая стабильность.
Минусы
- Случайный лес — очень сложный алгоритм.
- Время обучения больше, потому что требуется больше времени для расчета, разработки и обучения деревьев решений.
Заключительные слова
В рамках серии статей эта статья содержала информацию о случайном лесу, который представляет собой алгоритм машинного обучения, используемый для решения задач, подпадающих под обучение с учителем. В статье мы обсудили что, почему и как случайные леса. На примере мы рассмотрели его реализацию. Глядя на плюсы и минусы этой модели, можно сказать, что она имеет такие особенности и функциональные возможности, которые дают нам более высокую точность. Тем не менее, прежде чем использовать эту модель, мы должны понять основную концепцию модели, чтобы мы могли ее соответствующим образом настроить.
О ДСВ
Data Science Wizards (DSW) — это стартап в области искусственного интеллекта и науки о данных, который в первую очередь предлагает платформы, решения и услуги для использования данных в качестве стратегии с помощью решений для ИИ и анализа данных, а также консультационных услуг, чтобы помочь предприятиям принимать решения, основанные на данных. .
Флагманская платформа DSW UnifyAI — это комплексная платформа с поддержкой ИИ, позволяющая корпоративным клиентам создавать, развертывать, управлять и публиковать свои модели ИИ. UnifyAI помогает вам создать бизнес-вариант использования, используя возможности ИИ и улучшая результаты аналитики.
Свяжитесь с нами по адресу [email protected] и посетите нас на www.datasciencewizards.ai