XGBoost supports accomplishing ranking tasks. In ranking scenario, data are often grouped and we need the group information file to specify ranking tasks. The model used in XGBoost for ranking is the LambdaRank. See parameters for supported metrics.
The configuration setting is similar to the regression and binary classification setting, except user need to specify the objectives:
...
objective="rank:pairwise"
...
For more usage details please refer to the binary classification demo,
The dataset for ranking demo is from LETOR04 MQ2008 fold1. Before running the examples, you need to get the data by running:
./wgetdata.sh
Run the example:
./runexp.sh
There are two ways of doing ranking in python.
Run the example using xgboost.train
:
python rank.py
Run the example using XGBRanker
:
python rank_sklearn.py