ММООЗЗГГ.ru

Словарь ИИ

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

Коротко

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

Машинное обучение · random forest

Михаил МозгПроверено: 1 минута чтения

Ребенку

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

Простыми словами

В основе лежит дерево решений: цепочка вопросов вроде «клиент покупал в этом году?» или «сумма больше десяти тысяч?», в конце которой стоит ответ. Одно дерево легко ошибается и запоминает случайности. Поэтому строят сотни деревьев, и каждое учится на своей случайной подборке примеров и смотрит только на часть признаков. Деревья получаются разными и ошибаются по-разному. Итог решает голосование: какой ответ дало большинство, тот и выбран. Для чисел, например цены, ответы усредняют. Похоже на консилиум врачей, где каждый видел свои анализы.

Для бизнеса

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

Для специалиста

Случайный лес (random forest) это ансамбль деревьев решений, который описал Leo Breiman (Machine Learning, 45(1), 2001). Каждое дерево обучается на бутстреп-выборке, как в бэггинге (bagging), а разбиение в каждом узле ищут только среди случайного подмножества признаков; ответы объединяют голосованием в классификации и усреднением в регрессии. Breiman показал, что ошибка обобщения леса сходится к пределу с ростом числа деревьев, поэтому добавление деревьев не ведет к переобучению, а качество определяется силой отдельных деревьев и корреляцией между ними. Примеры, не попавшие в бутстреп дерева, дают оценку ошибки без отдельной выборки (out-of-bag); важность признака он измерял, перемешивая его значения в этих примерах (permutation importance). В scikit-learn RandomForestClassifier по умолчанию строит 100 деревьев и рассматривает sqrt(n_features) признаков в узле, а атрибут feature_importances_ считается по уменьшению неоднородности (impurity). Родственные методы: сверхслучайные деревья (extremely randomized trees) и градиентный бустинг, где деревья строят последовательно.

Пример

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

Связанные термины

Вопросы и ответы

Чем случайный лес отличается от дерева решений?

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

Где применяют случайный лес?

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

Источники

Где это применяют в компании

Не уверены, нужно ли это вашей компании?

Карта ИИ-решений
Написать в Telegram