# Clustering dataset with and without estimating means (no EM algorithm)

Given a dataset $$D$$ of the form $$D = \{ (x_0,y_0), (x_1,y_1),\ldots,(x_{n},y_n)$$ sampled from a Gaussian mixture model with identity covariance matrices, I want to understand what are my options in clustering the data without estimating the means (which are uknown).

That is, what are good algorithms I can use in order:

1. to cluster the data in $$K=2$$ clusters, since I know that the data originates from the mixture of 2 Gaussians
2. to cluster the data in as many clusters as the algorithm thinks are correct
3. is there a nice way to estimate the means (without EM) so that I simply use arg max of the distributions later for determining the clusters?

Note, I am familiar that most often the EM algorithm is used in order to make estimations on the parameters of the Gaussian mixtures and part of the E-step is actually estimating whether a given data point has probability to belong to $$i$$-th cluster. But the EM algorithm is constantly updating till it converges.

I am interested in exploring different options (not log likelihood) than the EM algorithm so I need to know what are the most accurate algorithms to cluster only the data.

E.g. spatial branch and bound (although I dont know how to implement in Python).