Как работает мультикатегориальная классификация XGBoost? - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь понять, как работает мультиклассовая классификация в XGBoost. Я прочитал статью Чена и Гестрина (2016, https://arxiv.org/abs/1603.02754), но детали до сих пор мне не ясны:

Скажите, что я хочу произвести классификатор вероятности c для задачи классификации 3 категории. Если я правильно понял, XGBoost соответствует деревьям регрессии как «слабым ученикам» или компонентам стимулирующей модели. Следовательно, если новый вектор-предиктор передается в модель XGB, деревья регрессии выдают реальное значение в виде «прогнозирования», (взвешенная) комбинация которого представляет собой прогнозируемое усиление модели.

С this вопрос и документация в статье, я собрал, что функция активации softmax применяется к усиленному предсказанию модели (реальное значение?), и что древовидная структура (например, точки расщепления) определяется путем оптимизации кросс-энтропии Функция потерь после применения softmax применяется к выходу модели.

Что мне не ясно, так это то, как в точности получаются три класса вероятностей. Если выходные данные модели являются просто реальным значением (взвешенная комбинация выходных данных отдельных деревьев регрессии), как приложение функции softmax может вернуть 3 вероятности?

Я использую библиотеку XGBoost в обоих Python и R, но это, вероятно, не имеет значения.

1 Ответ

1 голос
/ 15 января 2020

Внутри модели XGBoost может быть несколько дочерних моделей GBDT. В частности, в случае классификации с несколькими классами для каждого класса существует одна дочерняя модель GBDT.

Во время прогнозирования модель XGBoost оценивает все дочерние модели GBDT и получает массив из n элементов с необработанными оценками повышения. Нормализация softmax применяется к этому массиву, в результате чего получается массив из n-элементных значений вероятности.

Вы можете экспортировать модель XGBoost в форматы данных JSON или PMML для более детальной проверки этого механизма.

...