https://cognitivehub.in/unsupervised-clustering-with-unknown-number-of-clusters/