в чем разница между моделями xgboost lightgbm и catboost

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

в чем разница между моделями xgboost lightgbm и catboost. Смотреть фото в чем разница между моделями xgboost lightgbm и catboost. Смотреть картинку в чем разница между моделями xgboost lightgbm и catboost. Картинка про в чем разница между моделями xgboost lightgbm и catboost. Фото в чем разница между моделями xgboost lightgbm и catboost

В чем их особенность?

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

Теперь давайте рассмотрим их основные характеристики:

Перед обучением все алгоритмы создают пары признак-сплит для всех признаков. Примерами таких пар являются: (возраст, 10), (сумма, >500). Эти пары признак-сплит строятся на основе гистограммы и используются во время обучения в качестве возможных расщеплений узлов. Этот метод предварительной обработки быстрее, чем точный жадный алгоритм, который линейно перечисляет все возможные разбиения для непрерывных признаков.

lightGBM предлагает градиентную одностороннюю выборку (GOSS), которая выбирает разбиение, используя все экземпляры с большими градиентами (т.е. с большой ошибкой) и случайную выборку экземпляров с малыми градиентами. Чтобы сохранить одинаковое распределение данных при вычислении информационного выигрыша, GOSS вводит постоянный множитель для экземпляров данных с малыми градиентами. Таким образом, GOSS достигает хорошего баланса между увеличением скорости за счет уменьшения количества экземпляров данных и сохранением точности для выученных деревьев решений. Этот метод не является методом по умолчанию для LightGBM, поэтому его следует выбирать явно.

Catboost предлагает новую технику под названием Minimal Variance Sampling (MVS), которая представляет собой взвешенную выборку версии Stochastic Gradient Boosting. В этой технике взвешенная выборка происходит на уровне дерева, а не на уровне разбиения. Наблюдения для каждого дерева бустинга отбираются таким образом, чтобы максимизировать точность оценки разбиения.

XGboost не использует никаких методов взвешенной выборки, что делает его процесс разбиения более медленным по сравнению с GOSS и MVS.

в чем разница между моделями xgboost lightgbm и catboost. Смотреть фото в чем разница между моделями xgboost lightgbm и catboost. Смотреть картинку в чем разница между моделями xgboost lightgbm и catboost. Картинка про в чем разница между моделями xgboost lightgbm и catboost. Фото в чем разница между моделями xgboost lightgbm и catboost

Catboost строит сбалансированное дерево. На каждом уровне такого дерева выбирается пара признак-сплит, которая приносит наименьшие потери (согласно штрафной функции) и используется для всех узлов уровня. Можно изменить его правила с помощью параметра grow-policy.

LightGBM использует рост дерева по листьям (по принципу «лучший-первый»). Он выбирает для роста тот лист, который минимизирует потери, что позволяет вырастить несбалансированное дерево. Поскольку дерево растет не по уровням, а по листьям, при малых данных может произойти перебор. В таких случаях важно контролировать глубину дерева.

XGboost разделяет до заданного гиперпараметра max_depth, а затем начинает обрезать дерево в обратном направлении и удаляет части, за пределами которых нет положительного выигрыша. Такой подход используется, поскольку иногда за расщеплением без уменьшения потерь может следовать расщепление с уменьшением потерь. XGBoost также может выполнять рост дерева по листьям (как LightGBM).

Обработка пропущенных значений

Catboost имеет два режима обработки отсутствующих значений: «Min» и «Max». В режиме «Min» отсутствующие значения обрабатываются как минимальное значение для признака (им присваивается значение, которое меньше всех существующих значений). Таким образом, гарантируется, что при выборе разбиения будет учитываться разбиение, которое отделяет отсутствующие значения от всех остальных значений. «Max» работает точно так же, как и «Min», только с максимальными значениями.

В LightGBM и XGBoost недостающие значения будут распределяться в ту сторону, которая уменьшает потери в каждом разбиении.

Метод важности признаков

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

Обработка категориальных признаков

LightGBM разделяет категориальные признаки, разбивая их категории на 2 подмножества. Основная идея заключается в том, чтобы сортировать категории в соответствии с целью обучения при каждом разбиении. По нашему опыту, этот метод не обязательно улучшает модель LightGBM. Он имеет сравнимую (а иногда и худшую) производительность, чем другие методы (например, кодирование цели или метки).

XGBoost не имеет встроенного метода для категориальных признаков. Кодирование (one-hot, целевое кодирование и т.д.) должно выполняться пользователем.

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

1/3 ) категориальных признаков и около 100 тысяч наблюдений.

Во всех экспериментах мы обучались на CPU, используя экземпляр AWS c4.xlarge.

Мы сравнили скорость обучения, пытаясь создать максимально похожие условия для всех алгоритмов. Для этого мы обучили модель с 4000 деревьев и глубиной 1 (только корневой узел), со скоростью обучения 0,01.

На графике ниже показаны результаты эксперимента. Каждая точка представляет собой среднее значение из 3 повторных тренировок.

в чем разница между моделями xgboost lightgbm и catboost. Смотреть фото в чем разница между моделями xgboost lightgbm и catboost. Смотреть картинку в чем разница между моделями xgboost lightgbm и catboost. Картинка про в чем разница между моделями xgboost lightgbm и catboost. Фото в чем разница между моделями xgboost lightgbm и catboost

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

Для наших наборов данных LightGBM, CatBoost и XGBoost были

15x, 5x и 3x быстрее, чем GBM, соответственно.

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

В таблице ниже показаны результаты эксперимента по перекрестной валидации. Каждая ячейка представляет собой среднее значение WAUC из 5 повторных экспериментов.

в чем разница между моделями xgboost lightgbm и catboost. Смотреть фото в чем разница между моделями xgboost lightgbm и catboost. Смотреть картинку в чем разница между моделями xgboost lightgbm и catboost. Картинка про в чем разница между моделями xgboost lightgbm и catboost. Фото в чем разница между моделями xgboost lightgbm и catboost

В базовом наборе данных CatBoost превосходит остальные на 0,8-1%, что является значимой разницей. В других наборах данных различия не столь значительны, что говорит о том, что точность может не быть главным критерием при выборе алгоритма для этих наборов данных. Поэтому важно принимать во внимание другие критерии, такие как скорость и технические ограничения.

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

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

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

Спасибо команде Яндекса за ценный вклад и обратную связь!

Радуйте нас своими комментариями, предложениями и мыслями!

Источник

XGBoost vs. CatBoost vs. LightGBM: How Do They Compare?

This article will guide you through decision trees and random forests in machine learning, and compare LightGBM vs. XGBoost vs. CatBoost.

Here’s what we’ll cover:

Random forests and decision trees are tools that every machine learning engineer wants in their toolbox.

Think of a carpenter. When a carpenter is considering a new tool, they examine a variety of brands—similarly, we’ll analyze some of the most popular boosting techniques and frameworks so you can choose the best tool for the job.

*Looking for the Colab Notebook for this post? Find it right here.*

What is a decision tree in machine learning?

Let’s start by explaining decision trees. Decision trees are a class of machine learning models that can be thought of as a sequence of “if” statements to apply to an input to determine the prediction.

In greater rigor, a decision tree incrementally constructs vertices within a tree that represent a certain “if” statement and has children vertices connected to the parent by edges representing the possible outcomes of the parent vertex if condition (in decision tree lingo, this is referred to as the cut).

Eventually, after some sequence of “if” statements, a tree vertice will have no children but hold a prediction value instead. Decision trees can learn the “if” conditions and eventual prediction, but they notoriously overfit the training data. To prevent overfitting, oftentimes decision trees are purposefully underfit and cleverly combined to reach the right balance of bias and variance.

What are random forests in machine learning?

Now we’ll explore random forests, the brainchild of Leo Breiman. Random forests are a type of ensemble learning or a collection of so-called “weak learner” models whose predictions are combined into a single prediction.

In the case of random forests, the collection is made up of many decision trees. Random forests are considered “random” because each tree is trained using a random subset of the training data (referred to as bagging in more general ensemble models), and random subsets of the input features (coined feature bagging in ensemble model speak), to obtain diverse trees.

Bagging decreases the high variance and tendency of a weak learner model to overfit a dataset. For random forests, both types of bagging are necessary. Without both types of bagging, many of the trees could create similar “if” conditions and essentially highly correlated trees.

Instead of bagging and creating many weak learner models to prevent overfitting, often, an ensemble model may use a so-called boosting technique to train a strong learner using a sequence of weaker learners.

In the case of decision trees, the weaker learners are underfit trees that are strengthened by increasing the number of “if” conditions in each subsequent model.

XGBoost, CatBoost, and LightGBM have emerged as the most optimized boosting techniques for gradient-boosted tree algorithms. Scikit-learn also has generic implementations of random forests and gradient-boosted tree algorithms, but with fewer optimizations and customization options than XGBoost, CatBoost, or LightGBM, and is often better suited for research than production environments.

Each of XGBoost, CatBoost, and LightGBM have their own frameworks, distinguished by how the decision tree cuts are added iteratively.

LightGBM vs. XGBoost vs. CatBoost

LightGBM is a boosting technique and framework developed by Microsoft. The framework implements the LightGBM algorithm and is available in Python, R, and C. LightGBM is unique in that it can construct trees using Gradient-Based One-Sided Sampling, or GOSS for short.

GOSS looks at the gradients of different cuts affecting a loss function and updates an underfit tree according to a selection of the largest gradients and randomly sampled small gradients. GOSS allows LightGBM to quickly find the most influential cuts.

XGBoost was originally produced by University of Washington researchers and is maintained by open-source contributors. XGBoost is available in Python, R, Java, Ruby, Swift, Julia, C, and C++. Similar to LightGBM, XGBoost uses the gradients of different cuts to select the next cut, but XGBoost also uses the hessian, or second derivative, in its ranking of cuts. Computing this next derivative comes at a slight cost, but it also allows a greater estimation of the cut to use.

Finally, CatBoost is developed and maintained by the Russian search engine Yandex and is available in Python, R, C++, Java, and also Rust. CatBoost distinguishes itself from LightGBM and XGBoost by focusing on optimizing decision trees for categorical variables, or variables whose different values may have no relation with each other (eg. apples and oranges).

To compare apples and oranges in XGBoost, you’d have to split them into two one-hot encoded variables representing “is apple” and “is orange,” but CatBoost determines different categories automatically with no need for preprocessing (LightGBM does support categories, but has more limitations than CatBoost).

LightGBM vs. XGBoost vs. CatBoost: Which is better?

All of LightGBM, XGBoost, and CatBoost have the ability to execute on either CPUs or GPUs for accelerated learning, but their comparisons are more nuanced in practice. Each framework has an extensive list of tunable hyperparameters that affect learning and eventual performance.

First off, CatBoost is designed for categorical data and is known to have the best performance on it, showing the state-of-the-art performance over XGBoost and LightGBM in eight datasets in its official journal article. As of CatBoost version 0.6, a trained CatBoost tree can predict extraordinarily faster than either XGBoost or LightGBM.

On the flip side, some of CatBoost’s internal identification of categorical data slows its training time significantly in comparison to XGBoost, but it is still reported much faster than XGBoost. LightGBM also boasts accuracy and training speed increases over XGBoost in five of the benchmarks examined in its original publication.

But to XGBoost’s credit, XGBoost has been around the block longer than either LightGBM and CatBoost, so it has better learning resources and a more active developer community. It also doesn’t hurt that XGBoost is substantially faster and more accurate than its predecessors and other competitors such as Scikit-learn.

Each boosting technique and framework has a time and a place—and it is often not clear which will perform best until testing them all. Fortunately, prior work has done a decent amount of benchmarking the three choices, but ultimately it’s up to you, the engineer, to determine the best tool for the job.

Is machine learning engineering the right career for you?

Knowing machine learning and deep learning concepts is important—but not enough to get you hired. According to hiring managers, most job seekers lack the engineering skills to perform the job. This is why more than 50% of Springboard’s Machine Learning Career Track curriculum is focused on production engineering skills. In this course, you’ll design a machine learning/deep learning system, build a prototype, and deploy a running application that can be accessed via API or web service. No other bootcamp does this.

Our machine learning training will teach you linear and logistical regression, anomaly detection, cleaning, and transforming data. We’ll also teach you the most in-demand ML models and algorithms you’ll need to know to succeed. For each model, you will learn how it works conceptually first, then the applied mathematics necessary to implement it, and finally learn to test and train them.

Источник

Математические различия между GBM, XGBoost, LightGBM, CatBoost?

Существует несколько реализаций модели семейства GBDT, таких как:

Каковы математические различия между этими различными реализациями?

Я предполагаю, что catboost не использует dummified переменных, поэтому вес, присваиваемый каждой (категориальной) переменной, является более сбалансированным по сравнению с другими реализациями, поэтому переменные с большим количеством элементов не имеют большего веса, чем другие. Это позволяет слабой категориальной (с низкой кардинальностью) входить в некоторые деревья, следовательно, лучшую производительность. Кроме этого, у меня нет дальнейших объяснений.

Вы хотите взглянуть на эту англоязычную статью команды Яндекса о математической уникальности CATBoost.

Прошу прощения, что не дал вам конкретного и полного ответа.

Математические различия между GBM, XGBoost

Сначала я предлагаю вам прочитать статью Фридмана о машине повышения градиента, применяемой в частности к моделям линейных регрессоров, классификаторам и деревьям решений. https://statweb.stanford.edu/

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

Вы найдете математическую виньетку для модели XGBoost от Tianqi Chen et al. Теперь это становится интересным. Пара математических отклонений этой модели от классического GBM Фридмана:

в чем разница между моделями xgboost lightgbm и catboost. Смотреть фото в чем разница между моделями xgboost lightgbm и catboost. Смотреть картинку в чем разница между моделями xgboost lightgbm и catboost. Картинка про в чем разница между моделями xgboost lightgbm и catboost. Фото в чем разница между моделями xgboost lightgbm и catboost

К этому моменту: посмотрите здесь, чтобы найти реализацию потери квантиля в CATBoost, которая полезна и предоставляет как первое, так и второе производные: https://github.com/catboost/catboost/blob/master/catboost/libs/algo/ error_functions.h

Хотя вы не можете найти эту полезную функцию потери L1 в XGBoost, вы можете попробовать сравнить реализацию Яндекса с некоторыми пользовательскими функциями потери, написанными для XGB.

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

Я все. Я не использую LightGBM, поэтому не могу пролить свет на него.

Источник

Пример оптимизации гиперпараметра на XGBoost, LightGBM и CatBoost с использованием Hyperopt

Дата публикации Aug 1, 2019

в чем разница между моделями xgboost lightgbm и catboost. Смотреть фото в чем разница между моделями xgboost lightgbm и catboost. Смотреть картинку в чем разница между моделями xgboost lightgbm и catboost. Картинка про в чем разница между моделями xgboost lightgbm и catboost. Фото в чем разница между моделями xgboost lightgbm и catboost

Обещаю, это будет гораздо более высокий уровень, чем предыдущий:

Нежная реализация обучения в области подкрепления в торговле парой

Пример структурированного программирования в TensorFlow

towardsdatascience.com

Введение

Градиентное дерево принятия решений (GBDT)

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

XGBoost, LightGBM и CatBoost

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

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

LightGBM: Доступны как поэтапное, так и листовое обучение (дерево растет из определенного листа). Это позволяет пользователю выбрать метод с именемОдносторонняя выборка на основе градиента (GOSS)это разделяет выборки на основе самых больших градиентов и некоторые случайные выборки с меньшими градиентами. Предполагается, что точки данных с меньшими градиентами более хорошо обучены. Другим ключевым алгоритмом являетсяЭксклюзивный пакет функций (EFB), который изучает разреженность функций и объединяет несколько функций в одну, не теряя никакой информации, учитывая, что они никогда не равны нулю вместе. Это делает LightGBM более быстрым вариантом по сравнению с XGBoost.

CatBoost: Специально разработан для категориальной подготовки данных, но также применим к регрессионным задачам. Скорость на графическом процессоре считаетсябыстрыйсреди этих библиотек. Он имеет различные методы впреобразование категориальных характеристик в числовые, Ключи к его скорости связаны с двумя ОС:Забвенное деревоа такжеУпорядоченное повышение,Забвенное деревоотносится к построению дерева по уровням с симметричным двоичным разбиением (т.е. каждый лист на каждом уровне разделяется одним признаком), в то время какУпорядоченное повышениеприменяет перестановку и последовательное целевое кодирование для преобразования категориальных признаков. ВидетьВота такжеВотБольше подробностей.

Байесовская оптимизация

Hyperopt

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

Источник

Русские Блоги

Краткое описание алгоритма LightGBM

1 LightGBM принцип

1.1 Сравнение GBDT и LightGBM

Как показано на рисунке ниже, в наборе данных Хиггса LightGBM почти в 10 раз быстрее, чем XGBoost, использование памяти составляет около 1/6 от XGBoost, и показатель точности также улучшился.

в чем разница между моделями xgboost lightgbm и catboost. Смотреть фото в чем разница между моделями xgboost lightgbm и catboost. Смотреть картинку в чем разница между моделями xgboost lightgbm и catboost. Картинка про в чем разница между моделями xgboost lightgbm и catboost. Фото в чем разница между моделями xgboost lightgbm и catboost

1.2 Мотивация LightGBM

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

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

1.3 Принцип Xgboost

Существующие инструменты GBDT в основном основаны наПредварительное упорядочение(Предварительно отсортированный) алгоритм дерева решений (например, xgboost). Основная идея этого алгоритма для построения деревьев решений:

Во-первых, все функции предварительно отсортированы в соответствии с их стоимостью.

Во-вторых, используйте при прохождении точки разделения O(#data) Стоимость поиска лучшей точки сегментации для функции.

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

Преимущество такого алгоритма предварительной сортировки состоит в том, что он может точно найти точку сегментации.

Недостатки также очевидны:

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

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

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

1.4 LightGBM оптимизация

Раздел оптимизации LightGBM включает в себя следующее:

Далее в основном представлены алгоритм гистограммы, стратегия листового роста с ограничением по глубине и ускорением разности гистограмм.

1.4.1 Алгоритм гистограммы

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

в чем разница между моделями xgboost lightgbm и catboost. Смотреть фото в чем разница между моделями xgboost lightgbm и catboost. Смотреть картинку в чем разница между моделями xgboost lightgbm и catboost. Картинка про в чем разница между моделями xgboost lightgbm и catboost. Фото в чем разница между моделями xgboost lightgbm и catboost

Использование алгоритмов гистограммы имеет много преимуществ. Прежде всего, наиболее очевидным является снижение потребления памяти: алгоритм гистограммы не только не должен хранить дополнительные результаты предварительной сортировки, но также может сохранять только значение после дискретизации свойства, и этого значения обычно достаточно для хранения с 8-битными целыми числами. Может быть уменьшено до 1/8 оригинала.

в чем разница между моделями xgboost lightgbm и catboost. Смотреть фото в чем разница между моделями xgboost lightgbm и catboost. Смотреть картинку в чем разница между моделями xgboost lightgbm и catboost. Картинка про в чем разница между моделями xgboost lightgbm и catboost. Фото в чем разница между моделями xgboost lightgbm и catboost

Стоимость вычислений также значительно снижается. Алгоритм предварительной сортировки должен рассчитывать коэффициент усиления при каждом прохождении значения свойства, тогда как алгоритм гистограммы должен вычислять только k раз (k можно считать постоянной), а сложность времени определяется O(#data*#feature) Оптимизировано для O(k*#features) 。

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

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

1.4.2 Стратегия листового роста с ограничением по глубине

По алгоритму гистограммы LightGBM дополнительно оптимизирует. Прежде всего, он отказывается от стратегии роста дерева решений на уровне уровней, используемой большинством инструментов GBDT, и использует листовой алгоритм с ограничениями по глубине. Данные по уровням могут разделить листья одного и того же слоя в одно и то же время. Многопотоковую оптимизацию легко выполнить, она также контролирует сложность модели и не легко переоснастить. Но на самом деле, Level-wise является неэффективным алгоритмом, потому что он обрабатывает листья одного и того же слоя без разбора, что приводит к большим ненужным накладным расходам, потому что на самом деле многие листья имеют низкий коэффициент разделения и поиск не требуется. И расколоть.

в чем разница между моделями xgboost lightgbm и catboost. Смотреть фото в чем разница между моделями xgboost lightgbm и catboost. Смотреть картинку в чем разница между моделями xgboost lightgbm и catboost. Картинка про в чем разница между моделями xgboost lightgbm и catboost. Фото в чем разница между моделями xgboost lightgbm и catboost

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

в чем разница между моделями xgboost lightgbm и catboost. Смотреть фото в чем разница между моделями xgboost lightgbm и catboost. Смотреть картинку в чем разница между моделями xgboost lightgbm и catboost. Картинка про в чем разница между моделями xgboost lightgbm и catboost. Фото в чем разница между моделями xgboost lightgbm и catboost

1.4.3 Ускорение гистограммы

Другой оптимизацией LightGBM является гистограмма (гистограмма) для дифференциального ускорения. Легко наблюдаемое явление: гистограмма листа может быть получена по разнице между гистограммой его родительского узла и гистограммой его брата. Как правило, чтобы построить гистограмму, необходимо пройти все данные на листе, но разность гистограммы должна пройти только через k сегментов гистограммы. Используя этот метод, после построения гистограммы листа LightGBM может получить гистограмму своего родственного листа за очень небольшую стоимость, которая может быть удвоена по скорости.

в чем разница между моделями xgboost lightgbm и catboost. Смотреть фото в чем разница между моделями xgboost lightgbm и catboost. Смотреть картинку в чем разница между моделями xgboost lightgbm и catboost. Картинка про в чем разница между моделями xgboost lightgbm и catboost. Фото в чем разница между моделями xgboost lightgbm и catboost

1.4.4 Прямая поддержка функций категории

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

категорияАлгоритм предварительной сортировкиlightGBM
Использование памяти2*#feature*#data*4Bytes*#feature*#data*1Bytes
Накопление статистикиO(*#feature*#data)O(*#feature*#data)
Расчет усиления по сплитуO(*#feature*#data)O(*#feature*#k)
Гистограмма плохаяN/AУскорение вдвое
Прямая поддержка функций категорииN/AВ 8 раз быстрее на данных Экспо
Оптимизация кэшаN/AНа 40% быстрее по данным Хиггса
Пошаговый алгоритм дерева решений с ограничением по глубинеN/AБолее точный
1.4.5 Параллельная оптимизация LightGBM

LightGBM также имеет преимущество поддержки эффективного параллелизма. LightGBM изначально поддерживает параллельное обучение и в настоящее время поддерживаетПараллельная функцияиПараллелизм данныхИз двух

LightGBM оптимизирован для обоих параллельных методов:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *