2017-02-01 4 views
1

Я пытаюсь узнать, какая функция потерь использует XGBoost для классификации нескольких классов. Я нашел in this question функцию потерь для логистической классификации в двоичном случае.Какая функция потерь для классификации нескольких классов в XGBoost?

У меня было, однако, что для кластера с несколькими кланами он может быть таким же, как в GBM (для классов K) which can be seen here, где y_k = 1, если метка x равна k и 0 в любом другом случае, а p_k (x) является функцией softmax. Тем не менее, я использовал градиент первого и второго порядка, используя эту функцию потерь, и hessian не соответствует той, которая определена в коде here константой 2.

Не могли бы вы рассказать мне, какая функция потерь используется?

Заранее спасибо.

ответ

1

Хороший пример приведен на:

http://machinelearningmastery.com/avoid-overfitting-by-early-stopping-with-xgboost-in-python/

В принципе, вы можете определить функцию потерь с "eval_metric" параметра. (По умолчанию является RMSE для регрессии, и ошибки классификации)

описание функции «ошибка» дается на официальном GitHub репо:

«» ошибка ":. Binary частота ошибок классификации Она рассчитывается как # (неверные случаи)/# (все случаи). Для прогнозов оценка будет рассматривать экземпляры с прогнозируемым значением более 0,5 как положительные экземпляры, а остальные - как отрицательные экземпляры ».

Полный список Eval метрик, доступных также можно найти в разделе «Учебные задачи Параметры» https://github.com/dmlc/xgboost/blob/master/doc/parameter.md

Надежда, которая отвечает на ваш вопрос, удачи,

+0

То, что вы описываете метрики оценки, а не потери функций. Первый используется для * оценки * производительности, а последний - того, что фактически используется для соответствия модели. – Ben

Смежные вопросы