// SPDX-License-Identifier: GPL-3.0-or-later #ifndef KMEANS_H #define KMEANS_H #include #include #include #include #include "SamplesBuffer.h" class KMeans { public: KMeans(size_t NumClusters = 2) : NumClusters(NumClusters) { MinDist = std::numeric_limits::max(); MaxDist = std::numeric_limits::min(); }; void train(SamplesBuffer &SB, size_t MaxIterations); CalculatedNumber anomalyScore(SamplesBuffer &SB); private: size_t NumClusters; std::vector ClusterCenters; CalculatedNumber MinDist; CalculatedNumber MaxDist; std::mutex Mutex; }; #endif /* KMEANS_H */