Your AI powered learning assistant

Decision Trees & Ensembles by Igor Kotenkov

От дерева принятия решений к ансамблям: Предстоящий путь Структурированный путь начинается с деревьев решений и их критериев обучения и заканчивается комплексными методами. Маршрут охватывает случайные леса, разбиение на пакеты и переосмысленный взгляд на дисперсию смещения. Далее следует градиентное усиление, в котором рассказывается, почему оно работает, где оно работает и какие функции потерь определяют его. The destination - это компактный инструментарий для создания и понимания древовидных ансамблей.

Угадывание с помощью вопросов: Аналогия с Акинатором Как и в игре Akinator, прогнозирование может быть представлено в виде последовательности вопросов "да" и "нет", которые быстро сужают возможности. Каждый вопрос позволяет исключить как можно больше кандидатов в соответствии с критерием информативности. При правильных вопросах модель за несколько шагов приближается к целевому объекту. Эта простая идея лежит в основе деревьев принятия решений.

Разделение по пороговым значениям: как узлы принимают решение Выборка разбивается путем сравнения одного признака с пороговым значением, что приводит к принятию решения на простейшем уровне. При рекурсивном повторении этого процесса получается дерево, которое разбивает пространство на все более чистые области. Практическое разбиение включает такие проверки, как "возраст > 31 года?" или "высокий ли доход?". Цель состоит в том, чтобы уменьшить неопределенность при каждом разделении.

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

Энтропия как неопределенность для классификации Энтропия количественно определяет неопределенность: более низкая энтропия означает большую определенность в отношении меток классов. Энтропия чистого узла из идентичных меток близка к нулю, в то время как смешанные метки дают более высокую энтропию. Примеры цветных шариков иллюстрируют, насколько информативным является разделение, при котором выделяется в основном один цвет. Стандартная формула использует пропорции классов для измерения беспорядка.

Дисперсия (MSE) как примесь для регрессии Для числовых целей среднеквадратичная ошибка (отклонение от среднего значения) измеряет наличие примесей. Небольшое отклонение означает, что точки плотно сгруппированы и их легко предсказать по их среднему значению. Большое отклонение указывает на разбросанность точек и плохую концентрацию прогноза. Разбиения выбираются таким образом, чтобы свести к минимуму сумму отклонений в дочерних узлах.

Жадно растущие деревья и когда нужно остановиться Процедура разбиения повторяется до тех пор, пока не сработают правила остановки, такие как достижение максимальной глубины или получение слишком малого объема информации. Отрицательный или незначительный выигрыш означает, что дальнейшее разбиение вредит обобщению. Популярные критерии включают примесь Джини и энтропию для классификации и MSE для регрессии. Различные варианты приводят к различному поведению дерева.

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

Семейства деревьев: ID3, C4.5, CART на практике Классические алгоритмы различаются главным образом критериями примеси и эвристикой. ID3 и C4.5 основаны на вариантах получения информации, в то время как CART популяризирует Gini и широко используется в бустинге. Эти варианты влияют на стратегии разделения выборки и сокращения количества ошибок. Несмотря на различия, все они используют одну и ту же рекурсивную магистраль секционирования.

Мудрость толпы: бычье чутье Гальтона Группа из примерно 800 человек не смогла угадать точный вес быка, но в среднем они ошиблись примерно на один фунт. Независимые суждения с небольшой прогностической силой объединяются в убедительную оценку. Это явление стимулирует коллективное обучение. Объединение многих слабых мнений может превзойти любую отдельную догадку.

Случайный лес: Много деревьев, одно решение Несколько деревьев решений обучаются, а их результаты объединяются. Классификация агрегируется на основе большинства голосов или усредненных вероятностей; регрессия усредняет прогнозы. Ансамбль стабилизирует решения, которые могут быть неверно оценены каким-либо одним деревом. Разнообразие деревьев - ключ к его силе.

Почему чистый детерминизм терпит неудачу: потребность в случайности Если в каждом дереве используются одни и те же данные и правила, все деревья становятся идентичными и не приносят никакой пользы. Разнообразие привносится путем рандомизации во время обучения. Без случайности агрегация сводится к решению на основе одного дерева. Ансамбли должны отличаться друг от друга, чтобы выиграть от голосования или усреднения.

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

Случайные подпространства: Также есть функции выборки Случайные леса также отбирают подмножество объектов при разбиении или обучении. Концептуально матрица данных разбивается на строки (экземпляры) и столбцы (объекты). Каждое дерево отображает разные горизонтальные и вертикальные разрезы данных. Этот метод подпространства усиливает разнообразие и декоррелирует деревья.

Почему ансамбли уменьшают количество ошибок: Независимость имеет значение Усреднение n независимых, несмещенных предикторов уменьшает ожидаемую ошибку примерно в n раз. Математика формализует, как отклонение уменьшается, когда ошибки не коррелируют. Это объясняет поразительную стабильность агрегированных моделей. Независимость и отсутствие предвзятости являются ключевыми факторами.

Пределы независимости: Коррелированные деревья на практике На самом деле, базовые учащиеся обнаруживают схожие закономерности, и их ошибки коррелируют. Корреляция препятствует идеальному уменьшению дисперсии на 1/n, и предвзятость сохраняется, если ее не устранить. Даже в этом случае использование пакетов по-прежнему значительно снижает дисперсию и повышает надежность. Практика дает меньше преимуществ, чем теория, но достаточно весомых, чтобы иметь значение.

Декомпозиция смещения и дисперсии: Из–За чего Возникает ошибка Ожидаемая ошибка прогнозирования делится на смещение, дисперсию и неустранимый шум. Смещение измеряет систематическое отклонение от истинной функции; дисперсия измеряет чувствительность к выборке данных. Визуальные диаграммы часто отображают множество моделей, обученных на разных выборках, для выявления дисперсии. Понимание этого разделения определяет выбор модели и ансамбля.

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

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

Преимущества случайного леса: Надежность, простота, параллельность Объединение в пакеты делает модель устойчивой к выбросам, поскольку многие деревья никогда не обнаруживают редких аномалий. Не требуется никаких допущений о нормализации или линейности; разбиение зависит от порядка, а не от масштаба. Ансамбли деревьев редко перестраиваются и распараллеливаются на разных машинах. Масштабируемость вытекает из независимого обучения дерева.

Слабые стороны случайных лесов: Разреженность, Неэкстраполяция, Категоричность Редкие объекты с высокой мощностью (например, один объект для города с тысячами значений) дают слабые разбиения. Деревья интерполируются в пределах диапазона обучения и не могут быть экстраполированы за пределы наблюдаемых минимумов и максимумов. Встроенная обработка категориальных переменных ограничена и часто требует специального кодирования. Практическое использование позволяет решать задачи с несколькими тысячами функций, хотя иногда требуется более масштабная доработка.

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

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

Появляются градиенты: Остатки как производные от потерь Для MSE остатки равны отрицательному градиенту потерь, что делает "подгонку остатков" шагом градиента. Эта идея обобщает: используйте любые дифференцируемые потери и подгоняйте каждого учащегося к его отрицательному градиенту (псевдо-остаткам). Таким образом, бустинг - это методология, а не единый алгоритм, и базовый обучающий инструмент не обязательно должен быть деревом. Различные потери изменяют как градиенты, так и поведение модели.

Выбор потерь: компромиссы L2, L1 и Хубера L2 (квадратичная ошибка) сильно наказывает за большие отклонения и чувствителен к выбросам. L1 (абсолютная ошибка) рассчитана на среднее значение и более устойчива к аномалиям. Huber сочетает в себе оба параметра, переключаясь между значениями около определенного порога, чтобы сбалансировать стабильность и надежность. Визуализации показывают плавный квадратичный рост вблизи нуля и линейный рост в хвостах.

Асимметричные затраты и квантильные потери при прогнозировании Когда завышение и занижение прогноза обходятся по-разному, потери в квантиле (пинболе) являются приемлемыми. Параметр alpha в [0,1] выбирает желаемый квантиль и соответствующим образом корректирует штрафы. Его градиент кусочно-постоянен с помощью функций индикатора, что упрощает обновление данных. Это соответствует прогнозированию спроса, когда незначительный переизбыток на складе превышает упущенные продажи.

Классификация с учетом логистических потерь и маржи Для двоичных меток, кодируемых как ±1, логистические потери (по Бернулли) резко снижают отрицательную маржу и допускают достоверные прогнозы. Экспоненциальные потери ведут себя аналогично, но более агрессивно по отношению к выбросам, поэтому сегодня используются реже. Эти потери приближаются к нулю, но никогда не исчезают, поэтому повышение квалификации продолжает увеличивать разницу в классе. Ансамбль продолжает совершенствовать разделение даже после нулевых ошибок в обучении.

Сжатие и поиск линий: скорость обучения при повышении градиента Вклад каждого учащегося оценивается по скорости усвоения материала и весу за каждый шаг, определяемому с помощью поиска по строке. Обновление F_n = F_{n−1} + η·y_n·h_n(x) движется в направлении отрицательного градиента. Меньшие шаги стабилизируют процесс обучения, в то время как большее количество итераций повышает точность. Это отражает градиентный спуск: выбирайте направление по градиенту и спускайтесь в долину, чтобы уменьшить потери.

Размер шага, направление градиента и минимумы превышения Умножение градиента на коэффициент шага позволяет получить решение; eta и gamma определяют длину шага. Большие ступени могут пересекать впадины, меняя направление градиента после каждого прыжка. Небольшие, правильно подобранные шаги позволяют добиться минимального прогресса. Коэффициенты имеют значение, потому что повторяющиеся превышения могут полностью пропустить хорошие бассейны.

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

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

Цель = Потери + Регуляризация для контроля сложности. Модели, как правило, минимизируют потери, дополненные регуляризационным термином Омега (тета; лямбда, альфа, гамма). Цель состоит в том, чтобы точно решить задачу с помощью простой модели, не требующей больших вычислительных затрат. Избыточная сложность идеально подходит для обучения, но плохо поддается обобщению. Регуляризация уравновешивает экономию.

Пример с кусочно‑постоянной Величиной Демонстрирует компромиссы в сложности Модели Прогнозирование интереса пользователей с течением времени может быть выполнено с помощью множества разбиений, которые воспроизводят данные в виде гистограммы, но при этом не соответствуют действительности. Одно разбиение не соответствует действительности, поскольку отсутствует истинная точка изменения. Лучшим выбором является однократное разбиение точно в момент реального изменения с тремя параметрами: пороговым значением и двумя конечными значениями. Это позволяет фиксировать сигнал с минимальной сложностью.

Прогнозируемая усадка листьев L2 уменьшает экстремальные значения Применение штрафных коэффициентов к квадратам весов листьев препятствует получению слишком больших прогнозов. Допустимы немного меньшие выходные данные, поскольку остаточные ошибки будут учитываться в последующих деревьях. Эта логика применима как к регрессии, так и к классификации, где целевые значения могут быть приняты за ±1. Лямбда-значение контролирует величину этого сокращения.

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

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

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

Сосредоточьтесь в первую очередь на количестве деревьев и глобальной скорости обучения Основными параметрами являются количество ускоряющих итераций и глобальный размер шага (скорость обучения). Каждое дерево также имеет свой собственный локальный шаг, который адаптируется процедурой. Начните с небольшого количества деревьев, например, 100-300, для быстрого выполнения итераций. Это ускоряет эксперименты, в то время как вы формируете общий путь обучения.

Пошаговая процедура настройки, Которая действительно работает При небольшом бюджете на обучение отрегулируйте скорость обучения для плавной траектории совершенствования. Затем настройте лямбда-, альфа- и гамма-частоты для соответствующей регуляции. Затем установите структурные ограничения, такие как максимальная глубина (обычно 4-10 при ускорении), чтобы избежать переобучения. Наконец, увеличьте количество деревьев, пересмотрите скорость обучения и несколько ключевых параметров и повторите несколько циклов.

Почему Он предпочитает неглубокие деревья Случайные леса допускают наличие глубоких деревьев с избыточной подгонкой, поскольку независимые ошибки усредняются. При ускорении одно дерево с избыточной подгонкой может привести к значительному смещению, которое последующие деревья с трудом смогут исправить. Более мелкие деревья уменьшают дисперсию и стабилизируют процесс постепенного обучения. Это различие объясняет, почему при бурении обычно используются более низкие глубины, чем в лесах.

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

Настраивайте блоки, выполняйте итерации и доверяйте проверке Оптимизируйте гиперпараметры по блокам: определите количество ключевых элементов, выберите скорость обучения, затем регуляризацию, затем структурный контроль и контроль выборки. Увеличьте количество деревьев до приемлемого бюджета для задачи и повторно оцените скорость обучения и пределы выборки. Ожидайте, что вам придется повторить эту последовательность несколько раз. Эвристика зависит от структуры зависимости данных, поэтому полагайтесь на проверку, а не на эмпирические правила.

XGBoost: Упорядоченное повышение градиента второго порядка Усовершенствования включают в себя критерии оптимизации второго порядка и полную поддержку лямбда‑, альфа- и гамма-диапазонов в задаче. Ускорение графического процессора и обрезка после полного роста дерева повышают практичность. Деревья выращиваются до завершения, а затем обрезаются. Этот подход стал широко распространенным в качестве базового.

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

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

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

Скорость LightGBM: рост по листьям и отбор проб GOSS Постепенный рост минимизирует потери, повышая точность при разбиении. Односторонняя выборка на основе градиента сохраняет градиенты наибольшей величины и случайный срез остальных, сокращая рабочий набор на порядок. Благодаря объединению гистограмм и оптимизации на C++ обучение и логический вывод выполняются быстро. Это делает LightGBM отличным решением для многих задач, связанных с таблицами.

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

Симметричные (не обращающие внимания) деревья CatBoost для логического вывода с использованием кэша CatBoost использует симметричные деревья, где каждая глубина применяет одну и ту же функцию и пороговое значение ко всем узлам. Фиксированный набор разбиений на уровни сокращает объем памяти и действует как неявная регуляризация. Логический вывод становится более эффективным с точки зрения кэширования, поскольку структура разбиения является общей и небольшой. Пакетная обработка выигрывает от однократной загрузки этой структуры и равномерного нанесения.

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

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

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

Ошибки при штабелировании: Потеря данных, несоответствие и перегрузка Обучение на folds и усреднение моделей, обученных нескольким folds, при выводе могут не соответствовать настройкам обучения метамодели. Небольшие наборы данных теряют разнообразие и легко перегружаются, поэтому при количестве выборок, составляющем примерно 30-40 тыс. выборок, штабелирование не подходит. Глубокие многоуровневые стеки могут работать в конкурсах, но они хрупки в производстве. Поддерживайте простоту стеков, тщательно проверяйте их и контролируйте утечки.

Почему Однократное, порядковое и хэширование часто не работают для деревьев Функция One‑hot расширяет одну категорию до множества фиктивных значений, позволяя одной переменной доминировать при раздельном поиске и способствуя переопределению. Порядковые коды создают ложный порядок, а хэширование приводит к столкновению категорий, что приводит к разбиению. Целевое кодирование обещает компактные, информативные сигналы, но при наивном вычислении может привести к утечке. Редкие категории, в частности, могут запоминать цель.

Защищенное от утечки целевое кодирование С помощью сгибов и перестановок Вычисляйте статистику по категориям в непересекающихся сводках внутри более крупных сводок, чтобы закодированное подмножество никогда не видело свои собственные цели. Упорядоченное кодирование выполняет случайную перестановку и обновляет подсчеты и итоговые значения на лету, сглаживаемые ранее. Множественные перестановки стабилизируют значения; дополнительная неиспользуемая перестановка может быть зарезервирована для вычисления конечных значений, добавляя регуляризацию. Это отражает подход CatBoost к защите от утечек.

Кодировка логического вывода, пропущенные значения и выбор библиотеки При выводе обработайте новую строку как добавленную после обучающей перестановки и используйте сглаженную глобальную статистику для ее категории. Библиотеки перенаправляют пропущенные значения во время разбиения, при этом некоторые из них эффективно отсылают недостающий элемент в оба дочерних элемента и усредняют результаты. При решении задач, связанных с таблицами, попробуйте LightGBM и CatBoost вместе с XGBoost и выберите то, что подходит лучше всего. Тщательно настраивайте, следите за обновлениями и полагайтесь на надежную проверку во всем.