Implementation of the EM algorithm for mixtures of Gaussians. Cluster means are initiated by randomly drawing from a uniform distribution and with standard deviations as a fixed fraction of the range of each variable. Model is trained and evaluated on the provided wine dataset.