| 423 | } |
| 424 | |
| 425 | void Dataset::CopyFeatureMapperFrom(const Dataset* dataset) { |
| 426 | feature_groups_.clear(); |
| 427 | num_features_ = dataset->num_features_; |
| 428 | num_groups_ = dataset->num_groups_; |
| 429 | sparse_threshold_ = dataset->sparse_threshold_; |
| 430 | // copy feature bin mapper data |
| 431 | for (int i = 0; i < num_groups_; ++i) { |
| 432 | std::vector<std::unique_ptr<BinMapper>> bin_mappers; |
| 433 | for (int j = 0; j < dataset->feature_groups_[i]->num_feature_; ++j) { |
| 434 | bin_mappers.emplace_back(new BinMapper(*(dataset->feature_groups_[i]->bin_mappers_[j]))); |
| 435 | } |
| 436 | feature_groups_.emplace_back(new FeatureGroup( |
| 437 | dataset->feature_groups_[i]->num_feature_, |
| 438 | &bin_mappers, |
| 439 | num_data_, |
| 440 | dataset->feature_groups_[i]->is_sparse_)); |
| 441 | } |
| 442 | feature_groups_.shrink_to_fit(); |
| 443 | used_feature_map_ = dataset->used_feature_map_; |
| 444 | num_total_features_ = dataset->num_total_features_; |
| 445 | feature_names_ = dataset->feature_names_; |
| 446 | label_idx_ = dataset->label_idx_; |
| 447 | real_feature_idx_ = dataset->real_feature_idx_; |
| 448 | feature2group_ = dataset->feature2group_; |
| 449 | feature2subfeature_ = dataset->feature2subfeature_; |
| 450 | group_bin_boundaries_ = dataset->group_bin_boundaries_; |
| 451 | group_feature_start_ = dataset->group_feature_start_; |
| 452 | group_feature_cnt_ = dataset->group_feature_cnt_; |
| 453 | monotone_types_ = dataset->monotone_types_; |
| 454 | feature_penalty_ = dataset->feature_penalty_; |
| 455 | forced_bin_bounds_ = dataset->forced_bin_bounds_; |
| 456 | } |
| 457 | |
| 458 | void Dataset::CreateValid(const Dataset* dataset) { |
| 459 | feature_groups_.clear(); |
no test coverage detected