Fix predict_proba_spode mistake

This commit is contained in:
2025-02-27 20:45:28 +01:00
parent 610c2a6a4a
commit c127cb670a

View File

@@ -288,23 +288,23 @@ namespace platform {
base = (parent_offset + featureClassOffset_[child] + sc) * statesClass_; base = (parent_offset + featureClassOffset_[child] + sc) * statesClass_;
for (int c = 0; c < statesClass_; ++c) { for (int c = 0; c < statesClass_; ++c) {
/* /*
* The probability P(xc|xp,c) is stored in dataOpp_, and * The probability P(xc|xp,c) is stored in dataOpp_, and
* the probability P(xp|xc,c) is stored in data_ * the probability P(xp|xc,c) is stored in data_
*/ */
/* /*
int base = pairOffset_[i * nFeatures_ + j]; int base = pairOffset_[i * nFeatures_ + j];
int blockSize = states_[i] * states_[j]; int blockSize = states_[i] * states_[j];
return base + c * blockSize + (si * states_[j] + sj); return base + c * blockSize + (si * states_[j] + sj);
*/ */
// index = compute_index(parent, instance[parent], child, instance[child], classVal); // index = compute_index(parent, instance[parent], child, instance[child], classVal);
idx = base + c; idx = base + c;
spodeProbs[c] *= data_[idx]; spodeProbs[c] *= data_[idx];
spodeProbs[c] *= dataOpp_[idx]; spodeProbs[c] *= dataOpp_[idx];
} }
} }
// Normalize the probabilities // Normalize the probabilities
normalize(probs); normalize(spodeProbs);
return probs; return spodeProbs;
} }
int predict_spode(const std::vector<int>& instance, int parent) int predict_spode(const std::vector<int>& instance, int parent)
{ {