If the k-means problem were a good, convex optimization problem, we will not be randomly initializing it, because starting at (0,0,...,0) would give the right answer.

The main cause/reason for random initialization is accurately what you'll be able to get different solutions by trying different random seeds, then decide the most effective one when all of your k-means runs are done.

Ten runs is a beneficial rule of thumb for many applications.

The initialization of the k-means algorithm has a precise influence on the obtained result. To prevent a 'bad' initialization you could resort to the k-means++ algorithm which overcomes this problem.

For more information regarding the K-means Clustering - Algorithm, Applications, Evaluation Methods, and Drawbacks refer to the following link: __https://imaddabbura.github.io/post/kmeans_clustering/__