-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathKMeansNode.hpp
More file actions
46 lines (37 loc) · 1.18 KB
/
KMeansNode.hpp
File metadata and controls
46 lines (37 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#ifndef KMEANS_HPP
#define KMEANS_HPP
#include "ClusteringNode.hpp"
#include "mlpack/methods/kmeans/kmeans.hpp"
class KMeansNode : public ClusteringNode {
public:
//Set of values for parameter distance
enum class distances {
ManhattanDistance,
EuclideanDistance,
SquaredEuclideanDistance,
ChebyshevDistance
};
//Constructors
KMeansNode(std::string name);
KMeansNode(std::string name, size_t numClus);
KMeansNode(std::string name, distances d);
KMeansNode(std::string name, size_t numClus, size_t maxNumIter);
KMeansNode(std::string name, size_t numClus, distances d);
KMeansNode(std::string name, distances d, size_t maxNumIter);
KMeansNode(std::string name, size_t numClus, distances d, size_t maxNumIter);
//Getters
size_t NumberOfClusters();
distances Distance();
size_t MaxNumberOfIterations();
//Setters
void SetNumberOfClusters(size_t number);
void SetDistance(distances dist);
void SetMaxNumberOfIterations(size_t number);
void run() override;
private:
//Parameters
size_t numberOfClusters;
distances distance;
size_t maxNumberOfIterations;
};
#endif // KMEANS_HPP