Функция потерь и метрика оценки XGBoost

Я теперь запутался насчет функций потерь, используемых в XGBoost, Вот как я смущен:

  1. у нас есть objective, которая является функцией потерь, должна быть минимизирована; eval_metric: метрика, используемая для представления результатов обучения. Эти два абсолютно не связаны (если мы не рассматриваем такие, как только для классификации logloss а также mlogloss можно использовать как eval_metric). Это правильно? Если я, то для классификации проблемы, как вы можете использовать rmse в качестве показателя производительности?
  2. взять два варианта objective В качестве примера, reg:logistic а также binary:logistic, Для классификаций 0/1 обычно двоичную логистическую потерю или перекрестную энтропию следует рассматривать как функцию потерь, верно? Итак, какой из двух вариантов предназначен для этой функции потерь, и какова ценность другой? Скажи если binary:logistic представляет функцию кросс-энтропийной потери, то, что делает reg:logistic делать?
  3. В чем разница между multi:softmax а также multi:softprob? Используют ли они одну и ту же функцию потерь и просто различаются по формату вывода? Если так, то это должно быть то же самое для reg:logistic а также binary:logistic как хорошо, верно?

дополнение для 2-й задачи

скажем, функция потерь для задачи классификации 0/1 должна бытьL = sum(y_i*log(P_i)+(1-y_i)*log(P_i)), Так что, если мне нужно выбрать binary:logistic здесь или reg:logistic разрешить использовать классификатор xgboost L функция потери. Если это binary:logisticтогда какая функция потери reg:logistic использует?

2 ответа

"бинарный: логистика" использует -(y*log(y_pred) + (y-1)*(log(1-y_pred))

'reg:logistic' использует (y - y_pred)^2

Чтобы получить общую оценку ошибки, мы суммируем все ошибки и делим на количество выборок.


Вы можете найти это в основах. При взгляде на линейную регрессию VS Логистическая регрессия.

Линейная регрессия использует (y - y_pred)^2 как функция стоимости

Логистическая регрессия использует -(y*log(y_pred) + (y-1)*(log(1-y_pred)) как функция стоимости


Метрики оценки - это совсем другое. Они предназначены для оценки вашей модели. Они могут вас запутать, потому что логично использовать некоторые метрики оценки, которые совпадают с функцией потерь, например MSE в проблемах регрессии. Однако в бинарных задачах не всегда целесообразно logloss, Мой опыт заставил меня (в задачах классификации) вообще смотреть на AUC ROC,

РЕДАКТИРОВАТЬ


согласно документации xgboost:

рег: линейный: линейная регрессия

рег: логистика: логистическая регрессия

двоичный: логистика: логистическая регрессия для двоичной классификации, выходная вероятность

Итак, я угадал:

reg: linear: как мы уже говорили, (y - y_pred)^2

рег: логистика -(y*log(y_pred) + (y-1)*(log(1-y_pred)) и округления прогнозов с 0,5 порога

бинарный: логистика простая -(y*log(y_pred) + (y-1)*(log(1-y_pred)) (возвращает вероятность)

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

  1. Да, функция потерь и метрика оценки служат двум различным целям. Функция потерь используется моделью для изучения взаимосвязи между входом и выходом. Метрика оценки используется для оценки того, насколько хороши выученные отношения. Вот ссылка на обсуждение оценки модели: https://scikit-learn.org/stable/modules/model_evaluation.html
  2. Я не уверен, что именно вы спрашиваете здесь. Вы можете уточнить этот вопрос?
Другие вопросы по тегам