From 001d8c40238e0e4265d80def6201364faf606798 Mon Sep 17 00:00:00 2001 From: Liam Huang Date: Wed, 19 Oct 2016 01:23:41 +0800 Subject: [PATCH] correct CalcDCG in rank_metric.cc and rank_obj.cc (#1642) * correct CalcDCG in rank_metric.cc DCG use log base-2, however `std::log` returns log base-e. * correct CalcDCG in rank_obj.cc DCG use log base-2, however `std::log` returns log base-e. * use std::log2 instead of std::log make it more elegant * use std::log2 instead of std::log make it more elegant --- src/metric/rank_metric.cc | 2 +- src/objective/rank_obj.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/metric/rank_metric.cc b/src/metric/rank_metric.cc index 143d93c2b..00e00d909 100644 --- a/src/metric/rank_metric.cc +++ b/src/metric/rank_metric.cc @@ -257,7 +257,7 @@ struct EvalNDCG : public EvalRankList{ for (size_t i = 0; i < rec.size() && i < this->topn_; ++i) { const unsigned rel = rec[i].second; if (rel != 0) { - sumdcg += ((1 << rel) - 1) / std::log(i + 2.0); + sumdcg += ((1 << rel) - 1) / std::log2(i + 2.0); } } return static_cast(sumdcg); diff --git a/src/objective/rank_obj.cc b/src/objective/rank_obj.cc index faa17c322..21bdd3a65 100644 --- a/src/objective/rank_obj.cc +++ b/src/objective/rank_obj.cc @@ -215,7 +215,7 @@ class LambdaRankObjNDCG : public LambdaRankObj { for (size_t i = 0; i < labels.size(); ++i) { const unsigned rel = static_cast(labels[i]); if (rel != 0) { - sumdcg += ((1 << rel) - 1) / std::log(static_cast(i + 2)); + sumdcg += ((1 << rel) - 1) / std::log2(static_cast(i + 2)); } } return static_cast(sumdcg);