XGBoost - это контролируемый метод машинного обучения для классификации и регрессии, который используется в инструменте Обучение с использованием AutoML. XGBoost - это сокращение от "экстремального повышения градиента". Этот метод основывается на дереве решений и работает лучше, чем другие методы, такие как произвольное дерево и градиентное повышение. Он лучше работает со сложными большими наборами данных, используя различные методы оптимизации.
Для соответствия набору обучающих данных с использованием XGBoost, делается первичный прогноз. Невязки вычисляются на основе прогнозированного и наблюдаемого значений. Дерево решений создается с невязками на основе оценки подобия для невязок. Вычисляется подобие данных в листе, а также усиление в подобии при последующем разбиении. Усиления сравниваются, чтобы определить объект и порог для узла. Выходное значение для каждого листа также рассчитывается с использованием невязок. Для классификации значения обычно рассчитываются с использованием перечня шансов и вероятностей. Результат дерева становится новой невязкой для набора данных, который используется для построения другого дерева. Этот процесс повторяется до тех пор, пока невязки не перестанут уменьшаться или определенное количество раз. Каждое последующее дерево учится у предыдущих деревьев, и ему не присваивается равный вес, в отличие от того, как работает Случайный лес.
Чтобы использовать эту модель для прогнозирования, выходные данные каждого дерева, умноженные на скорость обучения, добавляются к начальному прогнозу, чтобы получить окончательное значение или классификацию.
XGBoost использует следующие параметры и методы для оптимизации алгоритма и обеспечения лучших результатов и производительности:
- Регуляризация - параметр регуляризации (лямбда) используется при расчете показателей подобия, чтобы снизить чувствительность к отдельным данным и избежать переобучения.
- Сокращение — параметр сложности дерева (гамма) выбирается для сравнения выигрышей. Ветвь, где коэффициент усиления меньше значения гаммы, удаляется. Это предотвращает избыточную подгонку за счет обрезки ненужных ветвей и уменьшения глубины деревьев.
- Скетч взвешенных квантилей — вместо проверки каждого возможного значения в качестве порога для разделения данных используются только взвешенные квантили. Выбор квантилей осуществляется с помощью алгоритма скетча, который оценивает распределение по нескольким системам в сети.
- Параллельное обучение — этот метод делит данные на блоки, которые можно использовать параллельно для создания деревьев или других вычислений.
- Поиск разделения с учетом разреженности — XGBoost обрабатывает разреженность данных, пробуя оба направления в разбиении и находя направление по умолчанию, вычисляя усиление.
- Доступ с учетом кэша — этот метод использует кэш-память системы для расчета показателей сходства и выходных значений. Кэш-память является более быстрой памятью для доступа по сравнению с основной памятью и повышает общую производительность модели.
- Блоки для вычислений вне ядра - этот метод работает с большими наборами данных, которые не помещаются в кэш или основную память и должны храниться на жестких дисках. Этот набор данных разбивается на блоки и сжимается. Несжатые данные в основной памяти работают быстрее, чем при чтении с жесткого диска. Другой метод, называемый сегментированием, используется, когда данные должны храниться на нескольких жестких дисках.
Дополнительные источники
Chen Tianqi and Guestrin Carlos. 2016. XGBoost: A scalable tree boosting system. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 785–794.