! * \brief Get current training score * \param out_len length of returned score * \return training score */
| 76 | * \return training score |
| 77 | */ |
| 78 | const double* GetTrainingScore(int64_t* out_len) override { |
| 79 | if (!is_update_score_cur_iter_) { |
| 80 | // only drop one time in one iteration |
| 81 | DroppingTrees(); |
| 82 | is_update_score_cur_iter_ = true; |
| 83 | } |
| 84 | *out_len = static_cast<int64_t>(train_score_updater_->num_data()) * num_class_; |
| 85 | return train_score_updater_->score(); |
| 86 | } |
| 87 | |
| 88 | bool EvalAndCheckEarlyStopping() override { |
| 89 | GBDT::OutputMetric(iter_); |