From a7c3c5eb47fc56bd7ff81ea0a6d43f6597b8ec06 Mon Sep 17 00:00:00 2001 From: hudlijac Date: Wed, 17 Dec 2025 21:57:06 +0100 Subject: [PATCH 1/2] LightGBMWrapper - Type of return value of classify methods for binary classification was changed to two-element vector of probabilities (instead of one-element vector) --- src/wif/ml/lightGBMWrapper.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/wif/ml/lightGBMWrapper.cpp b/src/wif/ml/lightGBMWrapper.cpp index 0fd713f..b893af3 100644 --- a/src/wif/ml/lightGBMWrapper.cpp +++ b/src/wif/ml/lightGBMWrapper.cpp @@ -53,9 +53,11 @@ ClfResult LightGBMWrapper::classify(const FlowFeatures& flowFeatures) std::vector dataToClassify; // classified features from flowfeatures are extracted here int64_t outLen; // length of output result int numOfClasses; // number of classes + LGBM_BoosterGetNumClasses(m_booster, &numOfClasses); std::vector pred(numOfClasses); // vector with predictions + for (const auto& featureID : m_featureIDs) { double value = flowFeatures.get(featureID); dataToClassify.push_back(value); @@ -74,6 +76,12 @@ ClfResult LightGBMWrapper::classify(const FlowFeatures& flowFeatures) &outLen, pred.data()); + if (numOfClasses == 1) { + double tmp = pred[0]; + + pred.insert(pred.begin(), (1.0 - tmp)); + } + return ClfResult(pred); } @@ -114,6 +122,13 @@ std::vector LightGBMWrapper::classify(const std::vector std::vector probabilities( pred.begin() + idx * numOfClasses, pred.begin() + (idx + 1) * numOfClasses); + + if (numOfClasses == 1) { + double tmp = probabilities[0]; + + probabilities.insert(probabilities.begin(), (1.0 - tmp)); + } + burstResults.emplace_back(probabilities); } From e08440200e0fecc76dcd6ea6724956c33a82b046 Mon Sep 17 00:00:00 2001 From: hudlijac Date: Wed, 17 Dec 2025 22:02:37 +0100 Subject: [PATCH 2/2] LightGBMWrapper - Some empty lines in code was deleted --- src/wif/ml/lightGBMWrapper.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/wif/ml/lightGBMWrapper.cpp b/src/wif/ml/lightGBMWrapper.cpp index b893af3..f7c59ca 100644 --- a/src/wif/ml/lightGBMWrapper.cpp +++ b/src/wif/ml/lightGBMWrapper.cpp @@ -53,9 +53,7 @@ ClfResult LightGBMWrapper::classify(const FlowFeatures& flowFeatures) std::vector dataToClassify; // classified features from flowfeatures are extracted here int64_t outLen; // length of output result int numOfClasses; // number of classes - LGBM_BoosterGetNumClasses(m_booster, &numOfClasses); - std::vector pred(numOfClasses); // vector with predictions for (const auto& featureID : m_featureIDs) { @@ -78,7 +76,6 @@ ClfResult LightGBMWrapper::classify(const FlowFeatures& flowFeatures) if (numOfClasses == 1) { double tmp = pred[0]; - pred.insert(pred.begin(), (1.0 - tmp)); } @@ -125,7 +122,6 @@ std::vector LightGBMWrapper::classify(const std::vector if (numOfClasses == 1) { double tmp = probabilities[0]; - probabilities.insert(probabilities.begin(), (1.0 - tmp)); }