When viewing the code for how XGBoost calculates the tweedie evaluation metric (tweedie-nloglik) we can see that it is calculated as:
bst_float a = y * std::exp((1 - rho_) * std::log(p)) / (1 - rho_);
bst_float b = std::exp((2 - rho_) * std::log(p)) / (2 - rho_);
return -a + b;
Source: line 310-313 below: https://github.com/dmlc/xgboost/blob/master/src/metric/elementwise_metric.cu
The expression does show similarities with the expression for the tweedy deviance for p values between 1-2, but there does not seem to be an exact mapping. Tweedie deviance according to wikipedia:
if I remove constants and take the negative logarithmic of the expression from Wikipedia, I do not end up with an expression which equals -a + b from the XGBoost. My questions is then what the value that XGBoost calculates is and how it relates to the negative logarithmic likelihood?
Thanks!