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

Method AddPredictionToScore

src/io/tree.cpp:115–158  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

113}\
114
115void Tree::AddPredictionToScore(const Dataset* data, data_size_t num_data, double* score) const {
116 if (num_leaves_ <= 1) {
117 if (leaf_value_[0] != 0.0f) {
118 #pragma omp parallel for schedule(static)
119 for (data_size_t i = 0; i < num_data; ++i) {
120 score[i] += leaf_value_[0];
121 }
122 }
123 return;
124 }
125 std::vector<uint32_t> default_bins(num_leaves_ - 1);
126 std::vector<uint32_t> max_bins(num_leaves_ - 1);
127 for (int i = 0; i < num_leaves_ - 1; ++i) {
128 const int fidx = split_feature_inner_[i];
129 auto bin_mapper = data->FeatureBinMapper(fidx);
130 default_bins[i] = bin_mapper->GetDefaultBin();
131 max_bins[i] = bin_mapper->num_bin() - 1;
132 }
133 if (num_cat_ > 0) {
134 if (data->num_features() > num_leaves_ - 1) {
135 Threading::For<data_size_t>(0, num_data, [this, &data, score, &default_bins, &max_bins]
136 (int, data_size_t start, data_size_t end) {
137 PredictionFun(num_leaves_ - 1, split_feature_inner_[i], start, DecisionInner, node, i);
138 });
139 } else {
140 Threading::For<data_size_t>(0, num_data, [this, &data, score, &default_bins, &max_bins]
141 (int, data_size_t start, data_size_t end) {
142 PredictionFun(data->num_features(), i, start, DecisionInner, split_feature_inner_[node], i);
143 });
144 }
145 } else {
146 if (data->num_features() > num_leaves_ - 1) {
147 Threading::For<data_size_t>(0, num_data, [this, &data, score, &default_bins, &max_bins]
148 (int, data_size_t start, data_size_t end) {
149 PredictionFun(num_leaves_ - 1, split_feature_inner_[i], start, NumericalDecisionInner, node, i);
150 });
151 } else {
152 Threading::For<data_size_t>(0, num_data, [this, &data, score, &default_bins, &max_bins]
153 (int, data_size_t start, data_size_t end) {
154 PredictionFun(data->num_features(), i, start, NumericalDecisionInner, split_feature_inner_[node], i);
155 });
156 }
157 }
158}
159
160void Tree::AddPredictionToScore(const Dataset* data,
161 const data_size_t* used_data_indices,

Callers 1

AddScoreMethod · 0.45

Calls 4

FeatureBinMapperMethod · 0.45
GetDefaultBinMethod · 0.45
num_binMethod · 0.45
num_featuresMethod · 0.45

Tested by

no test coverage detected