30 #ifndef __IPSDKMATH_SPECTRALCLUSTERING_H__ 31 #define __IPSDKMATH_SPECTRALCLUSTERING_H__ 36 #pragma warning (push) 37 #pragma warning (disable : 4275 4251) 41 #include <IPSDKMath/Clustering/KernelKMeansClusteringConfig.h> 42 #include <boost/noncopyable.hpp> 46 namespace clustering {
51 template <
typename KernelType>
52 class IPSDKMATH_API SpectralClustering :
public boost::noncopyable
75 const KernelType& getKernel()
const;
89 bool isClusteringDone()
const;
114 bool compute(
const ipUInt32 nbClusters,
146 ipUInt32 getNbFailedAttempts()
const;
174 const Vector& getEigenValues()
const;
179 const Matrix& getEigenVectors()
const;
225 #pragma warning (pop) 227 #endif // __IPSDKMATH_SPECTRALCLUSTERING_H__ Definition of import/export macro for library.
boost::numeric::ublas::matrix< ipReal64 > Matrix
matrix type associated to library
Definition: LinearAlgebraTypes.h:48
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
KernelKMeansClustering< KernelType > ClusteringAlgorithm
clustering algorithm type
Definition: SpectralClustering.h:60
std::vector< ipUInt32 > UInt32Vector
stl vector collections
Definition: BaseCollections.h:33
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
Definition: KernelKMeansClusteringConfig.h:29
boost::shared_ptr< ClusteringAlgorithm > ClusteringAlgorithmPtr
shared pointer to clustering algorithm
Definition: SpectralClustering.h:63
ClusteringAlgorithmPtr _pClusteringAlgorithm
underlying clustering algorithm
Definition: SpectralClustering.h:203
Definition: ClusteringTypes.h:31
VectorColl _inputDataColl
input data collection
Definition: SpectralClustering.h:206
boost::numeric::ublas::vector< ipReal64 > Vector
vector type associated to library
Definition: LinearAlgebraTypes.h:36
std::vector< Vector > VectorColl
collection of vectors
Definition: ClusteringTypes.h:31
Vector _eigenValues
eigen values associated to eigen problem resolution
Definition: SpectralClustering.h:212
#define IPSDKMATH_API
Import/Export macro for library IPSDKMath.
Definition: IPSDKMathExports.h:27
KernelKMeansClusteringConfig AlgorithmConfig
algorithm configuration
Definition: SpectralClustering.h:57
UInt32Vector _assignments
cluster index associated to each input data
Definition: SpectralClustering.h:209
Matrix _eigenVectors
eigen vectors associated to eigen problem resolution
Definition: SpectralClustering.h:215
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.
Definition: ClusteringTypes.h:29
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53