24 #ifndef __KMEANS_TYPES_H__
25 #define __KMEANS_TYPES_H__
27 #include "algorithms/algorithm.h"
28 #include "data_management/data/numeric_table.h"
29 #include "data_management/data/homogen_numeric_table.h"
30 #include "services/daal_defines.h"
63 lastDistanceType = euclidean
74 lastInputId = inputCentroids
84 lastMasterInputId = partialResults
95 partialObjectiveFunction,
96 partialGoalFunction = partialObjectiveFunction,
98 partialCandidatesDistances,
99 partialCandidatesCentroids,
100 lastPartialResultId = partialCandidatesCentroids
112 goalFunction = objectiveFunction,
114 lastResultId = nIterations
131 struct DAAL_EXPORT Parameter :
public daal::algorithms::Parameter
138 Parameter(
size_t _nClusters,
size_t _maxIterations);
144 Parameter(
const Parameter &other);
147 size_t maxIterations;
148 double accuracyThreshold;
150 DistanceType distanceType;
153 services::Status check() const DAAL_C11_OVERRIDE;
161 class DAAL_EXPORT InputIface : public daal::algorithms::Input
164 InputIface(
size_t nElements) : daal::algorithms::Input(nElements) {};
166 virtual size_t getNumberOfFeatures()
const = 0;
173 class DAAL_EXPORT Input :
public InputIface
184 data_management::NumericTablePtr
get(InputId id)
const;
191 void set(InputId
id,
const data_management::NumericTablePtr &ptr);
198 size_t getNumberOfFeatures()
const DAAL_C11_OVERRIDE;
205 services::Status check(
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
212 class DAAL_EXPORT PartialResult :
public daal::algorithms::PartialResult
215 DECLARE_SERIALIZABLE_CAST(PartialResult);
218 virtual ~PartialResult() {};
226 template <
typename algorithmFPType>
227 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
const int method);
234 data_management::NumericTablePtr
get(PartialResultId id)
const;
241 void set(PartialResultId
id,
const data_management::NumericTablePtr &ptr);
248 size_t getNumberOfFeatures()
const;
256 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
263 services::Status check(
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
267 template<
typename Archive,
bool onDeserialize>
268 services::Status serialImpl(Archive *arch)
270 return daal::algorithms::PartialResult::serialImpl<Archive, onDeserialize>(arch);
273 typedef services::SharedPtr<PartialResult> PartialResultPtr;
279 class DAAL_EXPORT Result :
public daal::algorithms::Result
282 DECLARE_SERIALIZABLE_CAST(Result);
285 virtual ~Result() {};
293 template <
typename algorithmFPType>
294 DAAL_EXPORT services::Status allocate(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *parameter,
const int method);
302 template <
typename algorithmFPType>
303 DAAL_EXPORT services::Status allocate(
const daal::algorithms::PartialResult *partialResult,
const daal::algorithms::Parameter *parameter,
const int method);
310 data_management::NumericTablePtr
get(ResultId id)
const;
317 void set(ResultId
id,
const data_management::NumericTablePtr &ptr);
325 services::Status check(
const daal::algorithms::Input *input,
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
333 services::Status check(
const daal::algorithms::PartialResult *pres,
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
337 template<
typename Archive,
bool onDeserialize>
338 services::Status serialImpl(Archive *arch)
340 return daal::algorithms::Result::serialImpl<Archive, onDeserialize>(arch);
343 typedef services::SharedPtr<Result> ResultPtr;
349 class DAAL_EXPORT DistributedStep2MasterInput :
public InputIface
352 DistributedStep2MasterInput();
354 virtual ~DistributedStep2MasterInput() {}
361 data_management::DataCollectionPtr
get(MasterInputId id)
const;
368 void set(MasterInputId
id,
const data_management::DataCollectionPtr &ptr);
376 void add(MasterInputId
id,
const PartialResultPtr &value);
383 size_t getNumberOfFeatures()
const DAAL_C11_OVERRIDE;
390 services::Status check(
const daal::algorithms::Parameter *par,
int method)
const DAAL_C11_OVERRIDE;
393 using interface1::Parameter;
394 using interface1::InputIface;
395 using interface1::Input;
396 using interface1::PartialResult;
397 using interface1::PartialResultPtr;
398 using interface1::Result;
399 using interface1::ResultPtr;
400 using interface1::DistributedStep2MasterInput;
daal::algorithms::kmeans::interface1::PartialResult
Partial results obtained with the compute() method of K-Means algorithm in the batch processing mode...
Definition: kmeans_types.h:212
daal::algorithms::kmeans::centroids
Definition: kmeans_types.h:109
daal::algorithms::kmeans::interface1::DistributedStep2MasterInput
Input objects for K-Means algorithm in the distributed processing mode
Definition: kmeans_types.h:349
daal::algorithms::kmeans::partialObjectiveFunction
Definition: kmeans_types.h:95
daal::algorithms::kmeans::interface1::Input
Input objects for K-Means algorithm
Definition: kmeans_types.h:173
daal::algorithms::kmeans::interface1::Parameter::maxIterations
size_t maxIterations
Definition: kmeans_types.h:147
daal::algorithms::kmeans::nIterations
Definition: kmeans_types.h:113
daal::algorithms::kmeans::InputId
InputId
Available identifiers of input objects for K-Means algorithm.
Definition: kmeans_types.h:70
daal::algorithms::kmeans::interface1::Parameter
Parameters for K-Means algorithm.
Definition: kmeans_types.h:131
daal::algorithms::kmeans::goalFunction
Definition: kmeans_types.h:112
daal::algorithms::kmeans::interface1::Result
Results obtained with the compute() method of K-Means algorithm in the batch processing mode...
Definition: kmeans_types.h:279
daal::algorithms::kmeans::data
Definition: kmeans_types.h:72
daal::algorithms::kmeans::partialCandidatesDistances
Definition: kmeans_types.h:98
daal::algorithms::kmeans::interface1::InputIface
Interface for input objects for K-Means algorithm in the batch and distributed processing modes...
Definition: kmeans_types.h:161
daal::algorithms::kmeans::interface1::Parameter::assignFlag
bool assignFlag
Definition: kmeans_types.h:151
daal::algorithms::kmeans::lloydDense
Definition: kmeans_types.h:51
daal::algorithms::kmeans::DistanceType
DistanceType
Definition: kmeans_types.h:60
daal::algorithms::kmeans::interface1::Parameter::distanceType
DistanceType distanceType
Definition: kmeans_types.h:150
daal::algorithms::kmeans::objectiveFunction
Definition: kmeans_types.h:111
daal::algorithms::kmeans::interface1::Parameter::gamma
double gamma
Definition: kmeans_types.h:149
daal::algorithms::kmeans::partialResults
Definition: kmeans_types.h:83
daal::algorithms::kmeans::PartialResultId
PartialResultId
Available identifiers of partial results of K-Means algorithm in the distributed processing mode...
Definition: kmeans_types.h:91
daal::algorithms::kmeans::lloydCSR
Definition: kmeans_types.h:53
daal::algorithms::kmeans::partialCandidatesCentroids
Definition: kmeans_types.h:99
daal::algorithms::kmeans::nObservations
Definition: kmeans_types.h:93
daal::algorithms::kmeans::Method
Method
Definition: kmeans_types.h:49
daal::algorithms::kmeans::ResultId
ResultId
Available identifiers of results of K-Means algorithm.
Definition: kmeans_types.h:107
daal::algorithms::kmeans::partialAssignments
Definition: kmeans_types.h:97
daal::algorithms::kmeans::inputCentroids
Definition: kmeans_types.h:73
daal::algorithms::kmeans::interface1::Parameter::accuracyThreshold
double accuracyThreshold
Definition: kmeans_types.h:148
daal::algorithms::math::abs::value
Definition: abs_types.h:88
daal::algorithms::kmeans::defaultDense
Definition: kmeans_types.h:52
daal::algorithms::kmeans::partialGoalFunction
Definition: kmeans_types.h:96
daal::algorithms::kmeans::partialSums
Definition: kmeans_types.h:94
daal::algorithms::kmeans::interface1::Parameter::nClusters
size_t nClusters
Definition: kmeans_types.h:146
daal::algorithms::kmeans::assignments
Definition: kmeans_types.h:110
daal::algorithms::kmeans::euclidean
Definition: kmeans_types.h:62
daal::algorithms::kmeans::MasterInputId
MasterInputId
Available identifiers of input objects for K-Means algorithm in the distributed processing mode...
Definition: kmeans_types.h:81