Как рассчитывается качество xgboost?
может кто-нибудь объяснить, как Quality
столбец в пакете xgboost R вычисляется в
1 ответов
хорошо, я думаю, я понял. Значение reg_lambda
по умолчанию не 0, как указано в документации, а фактически 1 (из param.h)
кроме того, похоже, что коэффициент половины не применяется при расчете коэффициента усиления, поэтому столбец качества вдвое больше, чем вы ожидаете. Наконец, я также не думаю gamma
(также называемый min_split_loss
) применяется к этому вычислению либо (от update_hitmaker-inl.hpp)
вместо этого гамма используется для определения того, следует ли вызывать обрезку, но не отражается в самом расчете усиления, как предполагает документация.
если вы примените эти изменения, вы действительно получите 4000.53 как Quality
для узла 0 дерева 0, как и в исходном вопросе. Я подниму это как проблему для парней xgboost, поэтому документация может быть соответственно изменились.