MAP (Mean Average Precision) objective in python XGBoost ranking


In general I’m looking for technical detail/insight into how XGBoost implements the rank:map learning objective (maximize mean average precision) in python. For example:

  1. Does the predict method produce probabilities? Or scores? (as discussed in the "Evaluating XGBoost ranking" topic) In my implementation the predicted scores lie between 0 and 1.

  2. Also looking for example implementations of hyper-parameter optimization and cross validation for the python implementaton of xgboost pairwise ranking, as these don’t work in an obvious way with the standard gridsearchCV sklearn API, for example.