@cryptotaxi247 / netdata-1 / commits / d22056fc0

Fix feature size calculation and add error handling for KMeans training (#21155)

Stelios Fragkakis committed Oct 16, 2025 at 16:04 UTC d22056fc04908e22990a3443c7d74c62162ee4ba
2 files changed +6 -1
src/ml/ml_features.cc
+1 -1
@@ -53,7 +53,7 @@ static void ml_features_lag(ml_features_t *features, double sampling_ratio)
53
54 for (size_t idx = 0; idx != n; idx++) {
55 DSample &DS = features->preprocessed_features[sample_idx++];
56 - DS.set_size(features->lag_n);
56 + DS.set_size(features->lag_n + 1);
57
58 if (Cfg.random_nums[idx % Cfg.random_nums.size()] > cutoff) {
59 sample_idx--;
src/ml/ml_kmeans.cc
+5
@@ -32,6 +32,11 @@ ml_kmeans_train(ml_kmeans_t *kmeans, const ml_features_t *features, unsigned max
32
33 kmeans->cluster_centers.clear();
34
35 + if (features->preprocessed_features.size() < 2) {
36 + netdata_log_error("ml_kmeans_train: not enough features to train kmeans (size=%zu)", features->preprocessed_features.size());
37 + return;
38 + }
39 +
40 dlib::pick_initial_centers(2, kmeans->cluster_centers, features->preprocessed_features);
41 dlib::find_clusters_using_kmeans(features->preprocessed_features, kmeans->cluster_centers, max_iters);
42