Сравнение деревьев решений и случайных лесов: что лучше для вашего проекта?
При построении конвейера машинного обучения для классификации или регрессии одним из самых ранних вариантов, с которым вы сталкиваетесь, является алгоритм использования. Деревья решений и случайные леса являются двумя наиболее широко применяемыми моделями, каждая из которых имеет длинный послужной список успеха в различных отраслях от финансов до здравоохранения. Несмотря на их общую основу на основе деревьев, они принципиально отличаются по сложности, интерпретируемости и производительности. Это расширенное руководство обеспечивает тщательное сравнение, исследует их внутреннюю работу и предлагает практические рекомендации, которые помогут вам выбрать правильный инструмент для вашего проекта.
Что такое дерево решений?
Дерево решений — это контролируемый алгоритм обучения, который моделирует решения и их возможные последствия как древовидную структуру. Он рекурсивно разделяет набор данных на подмножества на основе значений входных признаков, причем каждый внутренний узел представляет тест на признаке, каждая ветвь представляет результат теста, а каждый листовой узел содержит предсказанную ярлык класса (классификация) или непрерывное значение (регрессия). Цель состоит в том, чтобы создать разделы, которые являются как можно более чистыми по отношению к целевой переменной.
Деревья решений ценятся за их прозрачность. Можно буквально проследить путь от корня до листа, чтобы понять, почему был сделан тот или иной прогноз. Эта интерпретируемость неоценима в областях, где соблюдение нормативных требований или доверие заинтересованных сторон требует четких рассуждений, таких как кредитный рейтинг или медицинский диагноз. Однако та же гибкость, которая делает их интерпретируемыми, также делает их склонными к высокой дисперсии - небольшие изменения в данных обучения могут привести к очень разным деревьям, что приводит к переоборудованию.
Как деревья принимают решения
Процесс построения дерева состоит из выбора наилучшей функции для разделения на каждом узле. Общие критерии выбора разбиений включают Gini примеси (для классификации) и энтропию (получение информации), в то время как деревья регрессии обычно используют среднее квадратное уменьшение ошибок. Алгоритм оценивает каждую возможную точку разбиения для каждой функции и выбирает ту, которая максимизирует сокращение примесей. Этот жадный, нисходящий подход известен как рекурсивное разделение.
Например, в задаче классификации, предсказывающей отток клиента, корневой узел может разделиться на «длину контракта ≤ 12 месяцев». Если это разделение отделяет от шурнеров от не-шурнеров лучше, чем любая другая функция, это становится первым решением. Процесс повторяется рекурсивно на каждом узле ребенка до тех пор, пока не будет выполнено условие остановки, например, достижение максимальной глубины, наличие меньшего количества образцов на лист или отсутствие дальнейшего сокращения примесей.
Общие гиперпараметры
Практические реализации дерева решений, такие как в scikit-learn, выявляют несколько гиперпараметров, которые контролируют рост дерева и уменьшают переобучение:
- max depth — ограничивает, насколько глубоко дерево может расти. Мелкие деревья не подходят; глубокие деревья переобучены.
- min samples split — минимальное количество образцов, необходимое для разделения внутреннего узла. Более высокие значения предотвращают расколы на крошечных группах.
- min samples leaf — минимальное количество образцов, допустимых в листовом узле. Гладко справляется с моделью и помогает обобщению.
- max features — количество функций, которые следует учитывать при поиске лучшего разделения.Сокращение этого добавляет случайность и может улучшить производительность.
- критерий — функция измерения качества разделения (например, «джини» или «энтропия» для классификации, «мс» для регрессии).
Настройка этих параметров имеет важное значение для балансировки смещения и дисперсии. Без ограничений дерево решений может отлично запоминать данные обучения, что приводит к плохой производительности тестового набора.
Сильные и слабые стороны деревьев решений
Сильные стороны:
- Легко понять и визуализировать, даже для неспециалистов.
- Требуется небольшая предварительная обработка данных (не требуется масштабирование или фиктивные переменные).
- Обработайте как числовые, так и категориальные данные естественным образом.
- Может захватывать нелинейные отношения без функциональной инженерии.
- Интерпретируемый — каждый прогноз можно объяснить набором правил.
Слабости:
- Высокая дисперсия: небольшие изменения данных могут кардинально изменить структуру дерева.
- Склонен к переоборудованию, особенно на шумных или высокоразмерных данных.
- Как правило, более низкая точность прогнозирования по сравнению с ансамблевыми методами.
- Нестабильность: разное разделение в верхнем узле может каскадировать в совершенно другое дерево.
- Может создавать необъективные деревья, если доминируют некоторые классы (классовый дисбаланс).
Что такое случайный лес?
Случайный лес — это метод обучения ансамблей, который строит коллекцию деревьев решений и объединяет их результаты для повышения точности и надежности. Он опирается на два ключевых метода рандомизации: bagging (агрегирование бутстрапа) и случайный метод подпространства. Каждое дерево обучается на различном образце бутстрапа (случайный образец с заменой) исходных данных, и при каждом разделении рассматривается только случайное подмножество признаков. Это уравновешивает деревья, уменьшая дисперсию без значительного увеличения смещения. Окончательным прогнозом является средний голос (классификация) или среднее (регрессия) всех отдельных деревьев.
Сила случайных лесов исходит из закона больших чисел: по мере добавления большего количества деревьев ошибка обобщения сходится к пределу. Они удивительно устойчивы к переоборудованию и могут обрабатывать большие наборы данных с высокой размерностью, отсутствующими значениями и выбросами. Однако эта ансамблевая природа жертвует прямой интерпретацией одного дерева. Вы все еще можете извлекать оценки значимости признаков, но вы не можете проследить один путь решения для конкретного прогноза.
Механика случайных лесов
Обучение случайному лесу включает в себя три шага:
- Бутерброс:Создать n estimators пробы бутстрапа из тренировочного набора.Каждый образец имеет тот же размер, что и оригинальный, но содержит дублирующие строки, исключая при этом около 37% данных (пробы из пакета).
- Построение деревьев: Для каждого образца бутстрапа вырастить дерево решений без обрезки. На каждом узле выберите max features случайные признаки (обычно sqrt(p) для классификации, p/3 для регрессии) и выберите лучший раскол между ними.
- Агрегация: Для классификации, проголосуйте большинством за деревья. Для регрессии, усредните выходы.
Ошибка out-of-bag (OOB) является беспристрастной оценкой ошибки обобщения, вычисленной из образцов, не используемых при обучении каждого дерева.
Настройка гиперпараметра
Ключевые гиперпараметры в случайных лесах (реализация скикит-учеба) включают:
- n estimators — Количество деревьев.Больше деревьев обычно улучшают производительность до точки, с уменьшением отдачи.
- max features — Размер подмножества случайных признаков. Более низкие значения увеличивают случайность, но могут помочь с шумными функциями.
- max depth — Часто оставляют без ограничений (или большими), потому что упаковка уже снижает переобучение.
- min samples leaf — может быть установлен выше, чтобы сгладить модель, но обычно оставляется небольшой.
- bootstrap — булевый флаг для включения/отключения отбора проб (отключение превращает его в «лес» детерминированных деревьев, менее распространенный).
Случайные леса относительно легко настроить, потому что они менее чувствительны к гиперпараметрам, чем отдельные деревья. разумной отправной точкой является и , а затем настроить на основе ошибки OOB или перекрестной проверки.
Когда использовать случайный лес
Рассмотрите случайные леса, когда:
- Предсказательная точность является основной целью, и у вас достаточно вычислительных ресурсов.
- Ваш набор данных большой, объемный или содержит взаимодействия и нелинейности.
- Вам нужен встроенный рейтинг важности функций, чтобы понять, какие переменные влияют на прогнозы.
- Недостающие данные имеются (случайные леса могут обрабатывать недостающие значения с помощью вычислений на основе близости, хотя рекомендуется явное вычисление).
- Вам нужна модель, которая хорошо обобщается без обширной настройки гиперпараметра.
Сравнение деревьев решений и случайных лесов
Следующее сравнение подчеркивает критические различия между двумя алгоритмами по нескольким измерениям, относящимся к проектным решениям.
Интерпретируемость
Дерево решений: Полностью интерпретируемое. Вы можете визуализировать дерево и вывести явные правила. Случайный лес: Плохая интерпретируемость в целом. Вы можете осмотреть отдельные деревья, но решение ансамбля является агрегатным. Важность характеристики доступна, но не объяснение на уровне экземпляра.
Точность и обобщение
Случайные леса последовательно превосходят деревья единичных решений по точности на большинстве реальных наборов данных. Ансамбль уменьшает дисперсию, что приводит к лучшему обобщению. Деревья решений часто неэффективны на невидимых данных из-за переобучения, особенно при глубоком выращивании.
Переобучение и разнообразие
Деревья принятия решений являются моделями с высокой дисперсией: небольшое изменение данных обучения может привести к появлению совершенно другого дерева. Случайные леса уменьшают дисперсию, усредняя многие деревья, связанные с декором, что делает их гораздо более прочными. На самом деле случайные леса редко переобучаются, когда вы добавляете больше деревьев; ошибка имеет тенденцию стабилизироваться.
Расчетные затраты
Обучение одного дерева решений быстро. Случайные леса требуют обучения n деревьев, каждое из которых может быть вычислительно дорогим. Однако обучение деревьев параллелизуемо, и современное оборудование делает случайные леса возможными даже для больших наборов данных. Время прогнозирования также медленнее для случайных лесов, потому что каждое дерево должно оценивать вход.
Обработка недостающих данных
Деревья решений могут в некоторой степени обрабатывать недостающие значения, используя суррогатные расколы (сцикит-учеба не реализует это изначально; многие реализации рассматривают недостающие как отдельную категорию). Случайные леса также могут обрабатывать недостающие данные, но обычно рекомендуется вычисление. Обе модели устойчивы к недостающим значениям по сравнению с линейными моделями.
Особенность важности
Обе модели могут обеспечить оценку значимости признаков. Для деревьев принятия решений важность основана на общем сокращении примесей, вносимых каждой особенностью. Случайные леса обеспечивают более стабильную и надежную меру путем усреднения по многим деревьям. Значения свойств случайных лесов широко используются для выбора признаков.
Стабильность и надежность
Деревья решений неустойчивы — небольшие возмущения в данных приводят к разным расколам. Случайные леса стабильны; прогнозы ансамбля нечувствительны к случайности в процессе обучения. Это делает случайные леса более безопасным выбором для производственных систем.
Масштабируемость
Деревья решений плохо масштабируются до очень больших наборов данных, если они растут глубоко (использование памяти растет). Случайные леса хорошо масштабируются из-за параллельного обучения, но память может стать узким местом при хранении многих деревьев. Оба могут обрабатывать данные высокой размерности, но случайные леса имеют явное преимущество в точности на измерение.
Что вы должны использовать? Рамки решений
Выбор между деревом решений и случайным лесом зависит от приоритетов вашего проекта.
- Если интерпретируемость не подлежит обсуждению: Начните с дерева решений. Убедитесь, что вы обрезаете его (установленная max глубина, min samples лист), чтобы избежать переобучения. Если точность все еще недостаточна, рассмотрите случайный лес с анализом важности признаков, чтобы примерно объяснить модель.
- Если точность имеет первостепенное значение: Случайный лес почти всегда лучше. Он будет превосходить одно дерево по сложным данным. Исключения включают чрезвычайно небольшие наборы данных, где простое дерево может также обобщать.
- Если вычислительные ресурсы ограничены: Одно дерево решений легковесно. Вы также можете попробовать мелкое дерево в качестве базового. Если случайный лес слишком медленный, рассмотрите методы повышения градиента (хотя они также являются вычислительно интенсивными).
- Если набор данных очень мал (например, менее нескольких сотен образцов): Дерево решений с тщательной обрезкой может быть достаточным. Случайные леса могут все еще работать, но могут переобучиться, если образцы бутстрапа слишком похожи.
- Если вам нужно обрабатывать смешанные типы данных и недостающие значения: Оба могут справиться, но деревья решений с суррогатными расколами (например, R-разрыв) более просты для недостающих.
- Если вы создаете прототип и вам нужна быстрая итерация: Сначала используйте дерево решений. Он тренируется мгновенно и дает вам базовый уровень. Затем перейдите в случайный лес для окончательной модели производства.
Практические советы по внедрению
Вот несколько практических рекомендаций по использованию этих алгоритмов в рабочем процессе науки о данных (приведенные примеры).
- Начните с scikit-learn’s : Настройте или , чтобы получить интерпретируемое дерево. Используйте для визуализации. Оцените с перекрестной валидацией, чтобы обнаружить переобучение.
- Для случайных лесов используйте с в качестве отправной точки. Следите за оценкой OOB . Увеличьте до тех пор, пока ошибка OOB не стабилизируется.
- Инженерия характеристик : Обе модели хорошо справляются с сырыми функциями, но случайные леса получают выгоду от информативных функций.
- Руководить несбалансированными классами: Использовать или в случайных лесах.
- Настройка гиперпараметров: Для случайных лесов сосредоточьтесь на и . Используйте рандомизированный поиск с перекрестной валидацией, чтобы эффективно находить хорошие значения.
- Компромисс интерпретируемости: Если вам нужны точность и объяснимость, используйте случайный лес для предсказаний и подгоните мелкое дерево решений в качестве суррогатной модели для приближения своих решений (форма дистилляции модели).
Заключение
Деревья решений и случайные леса являются мощными инструментами, но они служат различным потребностям. Деревья решений предлагают беспрецедентную прозрачность и простоту, что делает их идеальными для исследовательского анализа и сценариев, где понимание каждого прогноза имеет решающее значение. Случайные леса жертвуют некоторой интерпретацией в обмен на значительно более высокую точность, надежность и устойчивость к переоборудованию. Для большинства реальных проектов, особенно с сложными, большими наборами данных, случайный лес является более безопасным и эффективным выбором. Однако всегда начинайте с простой модели, такой как дерево решений, чтобы установить базовый уровень. Как только вы поймете проблему и данные, вы можете уверенно перейти к случайному лесу, если точность оправдывает дополнительную сложность.
Для дальнейшего чтения, обратитесь к официальной документации по выбору деревьев , и , а также к основополагающим документам Бреймана , Рэндом Форестс , 2001] и , википедии, в записи об обучении деревьев решений .