In the MATLAB version of the K-means algorithm, there is a very useful flag that indicates the action to take if a cluster loses all member observations during the optimization. There are 3 possibilities in MATLAB:
treat empty cluster as an error
remove any clusters that become empty
Create a new cluster consisting of the one point furthest from its centroid
Does any one know what happens in DAAL K-means in that case? I could not find anything in the documentation about this.
In the K-Means implementation of Intel DAAL, clustering information on feature vectors is automatically collected during execution of the program. The feature furthest from their assigned centroids are selected as new cluster centers to compensate for an empty cluster during an iteration.
It is notable that a good choice of cluster initialization can avoid an empty cluster.
Refer https://software.intel.com/en-us/daal-programming-guide-details-5 for further details.