Mean Shift Clustering [1]} is based on the idea of Kernel Density Estimation (KDE). KDE assumes that the data points are generated from an underlying distribution and tries to estimate the distribution by
assigning a kernel to each data point. The most commonly used kernel is the Gaussian or RBF kernel.
The mean-shift algorithm is designed in a way that the points iteratively climb the KDE surface and are shifted to the nearest KDE peaks. It starts with a randomly selected point as the center of the RBF kernel. Thereafter, it proceeds by moving the kernel towards regions of higher density by shifting the center of the kernel to the mean of the points within the window (hence the algorithm is termed mean-shift). This is continued until shifting the kernel no longer includes more points.
This algorithm does not need the number of clusters to be specified beforehand, but it is computationally expensive compared to K-Means (time complexity of \(O(n*log(n))\)  in lower dimension for sklearn implementation). The selection of the window size/radius \(r\)  can be non-trivial and plays a key-role in the success of the algorithm.
Setting the radius as 0.4 for the slack values of a \(16\times 16\)  Systolic array, yields 4 clusters as observed in the fig. REF .
<FIGURE>