The basic k-means is an extremely simple and efficient algorithm. However, it
does have several shortcomings: (1) it assumes prior knowledge of the data in order
to choose the appropriate k ; (2) the final clusters are very sensitive to the selection of
the initial centroids; and (3), it can produce empty cluster. k-means also has several
limitations with regard to the data: it has problems when clusters are of differing
sizes, densities, and non-globular shapes; and it also has problems when the data
contains outliers.