Closed gusuperstar closed 8 years ago
ok, i see. XGBoost supports accomplishing ranking tasks. In ranking scenario, data are often grouped and we need the group information file to s pecify ranking tasks. The model used in XGBoost for ranking is the LambdaRank, this function is not yet completed. Currently, we provide pairwise rank.
So, listwise learing is not supportted. Any plan?
use rank:ndcg for lambda rank with ndcg metric
Hi, I just tried to use both objective = 'rank:map' and objective = 'rank:ndcg', but none of them seem to work. The pairwise objective function is actually fine. I can see in the code that the LambdaMART objective function is still there, however I do not understand why it cannot be selected using the python API. Thanks.
@tqchen can you comment if rank:ndcg
or rank:map
works for Python?
This needs clarification in the docs. Specifically:
is it resolved?
FWIW, "rank:ndcg" is defined here https://github.com/dmlc/xgboost/blob/72cd1517d6b1d145c34e13a063fadd31b507b01d/src/objective/rank_obj.cc#L331
The docs needs to be updated.
@vatsan Looks like it was an oversight. Can you submit a pull request to update the parameter doc?
@vatsan @Sandy4321 @travisbrady I am adding all objectives to parameter doc: #3672
“rank:pairwise” –set XGBoost to do ranking task by minimizing the pairwise loss
do u mean this? Since lambdamart is a listwise approach, how can i fit it to listwise ranking? including commond, parameters, and training data format, and where can i set the lambda for lambdamart. could u give a brief demo or intro? many thanks!