https://medium.com/@DataScience.Journey/understanding-k-means-clustering-a-comprehensive-guide-with-code-examples-c508ef9ba01d