18 #ifndef PIC_UTIL_K_MEANS_RAND_HPP 19 #define PIC_UTIL_K_MEANS_RAND_HPP 25 #include "../base.hpp" 26 #include "../util/array.hpp" 27 #include "../util/math.hpp" 28 #include "../util/std_util.hpp" 29 #include "../util/k_means.hpp" 38 T*
initCenters(T *samples,
int nSamples,
int nDim, T* centers)
42 centers =
new T[this->
k * nDim];
45 std::set< uint > chosen;
46 for(
uint i = 0; i < this->
k; i++) {
50 uint index = m() % nSamples;
51 if(chosen.find(index) == chosen.end()) {
68 static T*
execute(T *samples,
int nSamples,
int nDim,
70 std::vector< std::set<uint> *> &labels,
76 return km.
Process(samples, nSamples, nDim, centers, labels);
82 #endif // PIC_UTIL_K_MEANS_RAND_HPP unsigned int uint
Definition: base.hpp:23
uint k
Definition: k_means.hpp:114
uint maxIter
Definition: k_means.hpp:114
T * initCenters(T *samples, int nSamples, int nDim, T *centers)
Definition: k_means_rand.hpp:38
T * Process(T *samples, int nSamples, int nDim, T *centers, std::vector< std::set< uint > *> &labels)
Definition: k_means.hpp:128
Definition: k_means.hpp:33
Definition: k_means_rand.hpp:34
static T * execute(T *samples, int nSamples, int nDim, T *centers, int k, std::vector< std::set< uint > *> &labels, uint maxIter=100)
Definition: k_means_rand.hpp:68
Definition: bilateral_separation.hpp:25
static T * assign(T *data, int size, T *ret)
assign
Definition: array.hpp:464
KMeansRand(uint k, uint maxIter)
Definition: k_means_rand.hpp:64