| 31 | ~RF() {} |
| 32 | |
| 33 | void Init(const Config* config, const Dataset* train_data, const ObjectiveFunction* objective_function, |
| 34 | const std::vector<const Metric*>& training_metrics) override { |
| 35 | CHECK(config->bagging_freq > 0 && config->bagging_fraction < 1.0f && config->bagging_fraction > 0.0f); |
| 36 | CHECK(config->feature_fraction <= 1.0f && config->feature_fraction > 0.0f); |
| 37 | GBDT::Init(config, train_data, objective_function, training_metrics); |
| 38 | |
| 39 | if (num_init_iteration_ > 0) { |
| 40 | for (int cur_tree_id = 0; cur_tree_id < num_tree_per_iteration_; ++cur_tree_id) { |
| 41 | MultiplyScore(cur_tree_id, 1.0f / num_init_iteration_); |
| 42 | } |
| 43 | } else { |
| 44 | CHECK(train_data->metadata().init_score() == nullptr); |
| 45 | } |
| 46 | CHECK(num_tree_per_iteration_ == num_class_); |
| 47 | // not shrinkage rate for the RF |
| 48 | shrinkage_rate_ = 1.0f; |
| 49 | // only boosting one time |
| 50 | Boosting(); |
| 51 | if (is_use_subset_ && bag_data_cnt_ < num_data_) { |
| 52 | tmp_grad_.resize(num_data_); |
| 53 | tmp_hess_.resize(num_data_); |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | void ResetConfig(const Config* config) override { |
| 58 | CHECK(config->bagging_freq > 0 && config->bagging_fraction < 1.0f && config->bagging_fraction > 0.0f); |
nothing calls this directly
no test coverage detected