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

[Статья по теме: XGBoost - это Капитан Америка машинного обучения]

Как я упоминал в своем предыдущем посте, в целом преимущества XGBoost сводятся к семи преимуществам - преимуществ больше, но большинство комментариев указывает на эти шесть как на наиболее полезные. Эти:

  • Регуляризация
  • параллельная обработка
  • гибкость в установке целевой функции
  • обработка пропущенных значений
  • нежадная обрезка деревьев
  • встроенная перекрестная проверка и методы отсева (DART).

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

Сначала краткое описание предыстории и цели XGBoost. Первоначально XGBoost был разработан Тианки Ченом в его статье под названием XGBoost: масштабируемая система повышения качества дерева. Сам XGBoost является усовершенствованием алгоритма повышения градиента, созданного Джеромом Х. Фридманом в его статье под названием Аппроксимация жадной функцией: машина для повышения градиента. Обе статьи стоит изучить. Назначение XGBoost хорошо изложено на целевой странице его веб-сайта документации:

XGBoost - это оптимизированная библиотека с распределенным повышением градиента, которая отличается высокой эффективностью, гибкостью и переносимостью. В нем реализованы алгоритмы машинного обучения в рамках Gradient Boosting. XGBoost обеспечивает усиление параллельного дерева (также известное как GBDT, GBM), которое решает многие задачи науки о данных быстрым и точным способом. Один и тот же код работает в основной распределенной среде (Hadoop, SGE, MPI) и может решать проблемы, выходящие за рамки миллиардов примеров.

Сходства XGBoost и GBM

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

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

Три основных улучшения XGBoost

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

  • Регуляризация L1 (лассо), которая сбрасывает веса признаков до нуля и представлена ​​параметром альфа. Левое изображение выше представляет регуляризацию L1. Видно, что красный эллипс пересечет зеленую область регуляризации в нуле на оси абсцисс.
  • L2 (гребешок) регуляризация, которая сбрасывает веса признаков асимптотически до нуля и представлена ​​параметром лямбда. Правое изображение выше - регуляризация L2. В отличие от экземпляра L1, красный эллипс может пересекать зеленую функцию регуляризации при некотором значении, отличном от нуля по оси x. Результатом является член L2, который, как ожидается, никогда не достигнет нулевого значения.

Использование какой формы регуляризации обычно определяется путем перекрестной проверки и настройки параметров.

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

Распараллеленная разработка ансамблей дерева решений - еще одно усовершенствование алгоритма XGBoost. Алгоритм не выращивает деревья решений параллельно, а использует методы предварительной сортировки и блочного хранения в параллельной обработке, чтобы определить, какой будет оптимальная точка разделения. Затем можно использовать линейное сканирование по блокам, чтобы определить, где находится оптимальная точка разделения для каждой тестируемой функции. XGBoost будет использовать баланс между процессами в памяти и вне памяти, чтобы максимально использовать мощность, которую может предложить текущая машина.

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

[Связанная статья: Некоторые сведения о запуске xgboost]

Подведение итогов - XGBoost: усиление градиента

Алгоритм XGBoost был хорошо принят в мире машинного обучения. Он широко используется и часто занимает верхние строчки в списках лидеров соревнований по науке о данных. Сам алгоритм, хотя и немного сложен для понимания на начальном этапе, легко понять, немного потренировавшись. Следующим шагом здесь будет продолжение знакомства с регуляторами и кнопками, которые можно настроить в алгоритме. Когда все будет готово, также стоит перейти к изучению структуры lightGBM машин для повышения градиента.

Дополнительные источники:

Https://xgboost.readthedocs.io/en/latest/index.html

Https://towardsdatascience.com/boosting-your-way-to-the-top-with-xgboost-556fbe6b96d3



Оригинальный пост здесь.

Прочтите больше статей по науке о данных на OpenDataScience.com, включая учебные пособия и руководства от новичка до продвинутого уровня! Подпишитесь на нашу еженедельную рассылку здесь и получайте последние новости каждый четверг.