Visible to Intel only — GUID: GUID-70A1E6B5-C314-4990-9E72-EA168C51F318
Visible to Intel only — GUID: GUID-70A1E6B5-C314-4990-9E72-EA168C51F318
K-Means initialization
The K-Means initialization algorithm receives n feature vectors as input and chooses k initial centroids. After initialization, K-Means algorithm uses the initialization result to partition input data into k clusters.
Operation |
Computational methods |
Programming Interface |
||
Mathematical formulation
Refer to Developer Guide: K-Means Initialization.
Programming Interface
All types and functions in this section are declared in the oneapi::dal::kmeans_init namespace and be available via inclusion of the oneapi/dal/algo/kmeans_init.hpp header file.
Descriptor
template<typenameFloat=float,typenameMethod=method::by_default,typenameTask=task::by_default>classdescriptor
- Template Parameters
-
Float – The floating-point type that the algorithm uses for intermediate computations. Can be float or double.
Method – Tag-type that specifies an implementation of K-Means Initialization algorithm.
Task – Tag-type that specifies the type of the problem to solve. Can be task::init.
Constructors
descriptor(std::int64_tcluster_count=2)
Creates a new instance of the class with the given cluster_count.
Properties
auto&seed
- Getter & Setter
-
template <typename M = Method, typename None = detail::v1::enable_if_not_default_dense<M>> auto & get_seed() const
template <typename M = Method, typename None = detail::v1::enable_if_not_default_dense<M>> auto & set_seed(std::int64_t value)
std::int64_tcluster_count
The number of clusters k. Default value: 2.
- Getter & Setter
-
std::int64_t get_cluster_count() const
auto & set_cluster_count(std::int64_t value)
- Invariants
-
cluster_count > 0
Method tags
structdense
Tag-type that denotes dense computational method.
structparallel_plus_dense
structplus_plus_dense
structrandom_dense
usingby_default=dense
Task tags
structinit
Tag-type that parameterizes entities used for obtaining the initial K-Means centroids.
usingby_default=init
Alias tag-type for the initialization task.
Computing compute(...)
Input
template<typenameTask=task::by_default>classcompute_input
- Template Parameters
-
Task – Tag-type that specifies type of the problem to solve. Can be task::init.
Constructors
compute_input(consttable&data)
Creates a new instance of the class with the given data.
Properties
consttable&data
An table with the data to be clustered, where each row stores one feature vector. Default value: table{}.
- Getter & Setter
-
const table & get_data() const
auto & set_data(const table &data)
Result
template<typenameTask=task::by_default>classcompute_result
- Template Parameters
-
Task – Tag-type that specifies type of the problem to solve. Can be oneapi::dal::kmeans::task::clustering.
Constructors
compute_result()
Creates a new instance of the class with the default property values.
Properties
consttable¢roids
A table with the initial centroids. Each row of the table stores one centroid. Default value: table{}.
- Getter & Setter
-
const table & get_centroids() const
auto & set_centroids(const table &value)
Operation
template<typenameDescriptor>kmeans_init::compute_resultcompute(constDescriptor&desc, constkmeans_init::compute_input&input)
- Parameters
-
desc – K-Means algorithm descriptor kmeans_init::descriptor
input – Input data for the computing operation
Examples
oneAPI DPC++
Batch Processing:
dpc_kmeans_init_dense.cpp
oneAPI C++
Batch Processing:
cpp_kmeans_init_dense.cpp