Существует несколько реализаций модели семейства GBDT, таких как:
- GBM
- XGBoost
- LightGBM
- Catboost.
Каковы математические различия между этими различными реализациями?
Catboost, кажется, превосходит другие реализации, даже используя только параметры по умолчанию в соответствии с этим тестом , но все еще очень медленный.
Я предполагаю, что catboost не использует dummified переменных, поэтому вес, присваиваемый каждой (категориальной) переменной, является более сбалансированным по сравнению с другими реализациями, поэтому переменные с большим количеством элементов не имеют большего веса, чем другие. Это позволяет слабой категориальной (с низкой кардинальностью) входить в некоторые деревья, следовательно, лучшую производительность. Кроме этого, у меня нет дальнейших объяснений.
Ответы:
https://arxiv.org/abs/1706.09516
Вы хотите взглянуть на эту англоязычную статью команды Яндекса о математической уникальности CATBoost.
Я прочитал его на короткое время , и среди немногих вещей , которые я мог понять , быстро был тот факт , что они не используют остатки , полученные на ПОЕЗДЕ сделать ПОЕЗД , поскольку эти остатки создают оптимистичный уклон качества обучения. ( Обновление: это новшество обеспечивает способ борьбы с переоснащением, что является одной из причин, по которой алгоритм работал лучше по сравнению с его аналогами, за исключением множества способов предварительной обработки категориальных переменных).
Прошу прощения, что не дал вам конкретного и полного ответа.
Сначала я предлагаю вам прочитать статью Фридмана о машине повышения градиента, применяемой в частности к моделям линейных регрессоров, классификаторам и деревьям решений. https://statweb.stanford.edu/~jhf/ftp/trebst.pdf
Я бы не стал вдаваться в подробности здесь. Это просто хорошее прочтение, охватывающее различные типы потерь (L) и помимо концепции переменной важности. Конечно, это важная статья о реализации метода спуска в пространстве функций (низкоуровневых моделей), а не параметров в целях минимизации потерь.
Если вы посмотрите здесь: https://arxiv.org/pdf/1603.02754.pdf
Вы найдете математическую виньетку для модели XGBoost от Tianqi Chen et al. Теперь это становится интересным. Пара математических отклонений этой модели от классического GBM Фридмана:
К этому моменту: посмотрите здесь, чтобы найти реализацию потери квантиля в CATBoost, которая полезна и предоставляет как первое, так и второе производные: https://github.com/catboost/catboost/blob/master/catboost/libs/algo/ error_functions.h
Хотя вы не можете найти эту полезную функцию потери L1 в XGBoost, вы можете попробовать сравнить реализацию Яндекса с некоторыми пользовательскими функциями потери, написанными для XGB.
Рассмотрите эту ссылку: https://tech.yandex.com/catboost/doc/dg/concepts/algorithm-main-stages_cat-to-numberic-docpage/#algorithm-main-stages_cat-to-numberic
Они предлагают разнообразные способы подачи категориальных характеристик в обучение модели, используя старый и хорошо известный подход «с одной стороны». Уменьшение размеров входного пространства без потери большого количества информации является одной из возможных причин того, что подогнанная модель менее приспособлена.
Я все. Я не использую LightGBM, поэтому не могу пролить свет на него.
источник