MCPcopy Create free account
hub / github.com/antmachineintelligence/mtgbmcode / Init

Method Init

src/objective/rank_objective.hpp:46–73  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

44 ~LambdarankNDCG() {
45 }
46 void Init(const Metadata& metadata, data_size_t num_data) override {
47 num_data_ = num_data;
48 // get label
49 label_ = metadata.label();
50 DCGCalculator::CheckLabel(label_, num_data_);
51 // get weights
52 weights_ = metadata.weights();
53 // get boundries
54 query_boundaries_ = metadata.query_boundaries();
55 if (query_boundaries_ == nullptr) {
56 Log::Fatal("Lambdarank tasks require query information");
57 }
58 num_queries_ = metadata.num_queries();
59 // cache inverse max DCG, avoid computation many times
60 inverse_max_dcgs_.resize(num_queries_);
61#pragma omp parallel for schedule(static)
62 for (data_size_t i = 0; i < num_queries_; ++i) {
63 inverse_max_dcgs_[i] = DCGCalculator::CalMaxDCGAtK(optimize_pos_at_,
64 label_ + query_boundaries_[i],
65 query_boundaries_[i + 1] - query_boundaries_[i]);
66
67 if (inverse_max_dcgs_[i] > 0.0) {
68 inverse_max_dcgs_[i] = 1.0f / inverse_max_dcgs_[i];
69 }
70 }
71 // construct sigmoid table to speed up sigmoid transform
72 ConstructSigmoidTable();
73 }
74
75 void GetGradients(const double* score, score_t* gradients,
76 score_t* hessians) const override {

Callers

nothing calls this directly

Calls 5

labelMethod · 0.45
weightsMethod · 0.45
query_boundariesMethod · 0.45
num_queriesMethod · 0.45
resizeMethod · 0.45

Tested by

no test coverage detected