• Pavel Metrikov's avatar
    Add support to optimize for NDCG at a given truncation level (#3425) · ba0a1f8d
    Pavel Metrikov authored
    
    
    * Add support to optimize for NDCG at a given truncation level
    
    In order to correctly optimize for NDCG@_k_, one should exclude pairs containing both documents beyond the top-_k_ (as they don't affect NDCG@_k_ when swapped).
    
    * Update rank_objective.hpp
    
    * Apply suggestions from code review
    Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
    
    * Update rank_objective.hpp
    
    remove the additional branching: get high_rank and low_rank by one "if".
    
    * Update config.h
    
    add description to lambdarank_truncation_level parameter
    
    * Update Parameters.rst
    
    * Update test_sklearn.py
    
    update expected NDCG value for a test, as it was affected by the underlying change in the algorithm
    
    * Update test_sklearn.py
    
    update NDCG@3 reference value
    
    * fix R learning-to-rank tests
    
    * Update rank_objective.hpp
    
    * Update include/LightGBM/config.h
    Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
    
    * Update Parameters.rst
    Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
    Co-authored-by: default avatarJames Lamb <jaylamb20@gmail.com>
    ba0a1f8d
Parameters.rst 67 KB