In an earlier description of clustering algorithms we described an algorithm by which locally optimum partitions and center of gravity of multi-dimensional vectors/points may be obtained. If only one or two dimensional data are considered the optimum partitioning to obtain the so-called Voronoi regions are known. For one-dimension it is the interval while for two-dimensions it is hexagon (think of honey-bee nests or cellular phone tower positioning and the 2-D tessellation of 2-D space for those towers). For any dimensions bigger than two, the optimum partitioning is not know and therefore we need an algorithm similar to what we covered in the last description to find the locally optimum solution. The result of the algorithm are construction of Voronoi regions along with center of gravity of the regions based on the distortion measure used for the assignment.
Here we provide the Python software to achieve this assignment. The input to this software was an image which we used the pixels in the image to form vectors representing the multi-dimensional points in the clusters. If you were to use this software you may use any input you wish to the construct the multi-dimensional vectors. You then may choose the dimension of each vector, the number of clusters and various thresholds set in the software to suit your need.
This software along with a “C” program achieving the same goals may be find in https://github/faramarz01/clustering.