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

Бэггинг, сокращенно от начального агрегирования, - это общий метод комбинирования прогнозов многих моделей. Хотя его можно использовать для агрегирования выходных данных любого типа регрессионной или классификационной модели, пакетирование обычно применяется к деревьям решений. Компонент «начальной загрузки» упаковки просто означает, что вы подгоняете каждое отдельное дерево к набору наблюдений, которые были отобраны случайным образом с заменой исходных данных обучения. Вы строите сколько угодно этих деревьев, а затем объединяете их. Для задач классификации ваши агрегированные прогнозы будут генерироваться большинством голосов всех деревьев в вашей модели. Для задач регрессии ваш прогноз будет просто средним результатом деревьев.

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

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