23 #ifndef __IPSDKMATH_KERNELKMEANSCLUSTERING_H__ 24 #define __IPSDKMATH_KERNELKMEANSCLUSTERING_H__ 29 #pragma warning (push) 30 #pragma warning (disable : 4275 4251) 34 #include <IPSDKMath/Clustering/KernelKMeansClusteringConfig.h> 35 #include <IPSDKMath/Clustering/KernelKMeansCentroid.h> 36 #include <boost/noncopyable.hpp> 40 namespace clustering {
45 template <
typename KernelType>
46 class IPSDKMATH_API KernelKMeansClustering :
public boost::noncopyable
69 const KernelType& getKernel()
const;
83 bool isClusteringDone()
const;
108 bool compute(
const ipUInt32 nbClusters,
140 ipUInt32 getNbFailedAttempts()
const;
220 #pragma warning (pop) 222 #endif // __IPSDKMATH_KERNELKMEANSCLUSTERING_H__ KernelType _kernel
kernel associated to clustering operation
Definition: KernelKMeansClustering.h:189
Definition of import/export macro for library.
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
AlgorithmConfig _config
configuration associated to clustering algorithm
Definition: KernelKMeansClustering.h:192
std::vector< ipUInt32 > UInt32Vector
stl vector collections
Definition: BaseCollections.h:33
std::vector< CentroidType > CentroidsColl
collection of centroids
Definition: KernelKMeansClustering.h:57
KernelKMeansClusteringConfig AlgorithmConfig
algorithm configuration
Definition: KernelKMeansClustering.h:51
Definition: ClusteringUtils.h:27
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
Definition: KernelKMeansClusteringConfig.h:29
CentroidsColl _clustersCentroids
cluster centroids associated to processing
Definition: KernelKMeansClustering.h:207
ipReal64 _separation
separation associated to processing
Definition: KernelKMeansClustering.h:204
boost::numeric::ublas::vector< ipReal64 > Vector
vector type associated to library
Definition: LinearAlgebraTypes.h:36
UInt32Vector _assignments
cluster index associated to each input data
Definition: KernelKMeansClustering.h:210
std::vector< Vector > VectorColl
collection of vectors
Definition: ClusteringTypes.h:31
#define IPSDKMATH_API
Import/Export macro for library IPSDKMath.
Definition: IPSDKMathExports.h:27
ipUInt32 _nbFailedAttempts
number of failed attempts
Definition: KernelKMeansClustering.h:198
VectorColl _inputDataColl
input data collection
Definition: KernelKMeansClustering.h:195
ipUInt32 _nbIteration
number of iterations associated to selected clustering solution
Definition: KernelKMeansClustering.h:201
IPSDKMATH_API ipUInt32 computeAssignment(const VectorColl &clustersCentersColl, const Vector &data)
function allowing to compute cluster assignment using an euclidian distance to clusters centers ...
Predefined types for clustering algorithm.
KernelKMeansCentroid< KernelType > CentroidType
centroid type associated to object
Definition: KernelKMeansClustering.h:54
Definition: ClusteringTypes.h:29
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53