EM Clustering algorithm: Clustering using mixture model. What is mixture model? Estimating model parameters using maximum likelihood, Likelihood function, Basic EM steps. Click the link
https://github.com/TheAcademcian/Machine-Learning/blob/main/emClustering.py for code.