title: Fit mixture of Gaussians with fixed covariance in Python
body: <p>I have some 2D data (GPS data) with clusters (stop locations) that I know resemble Gaussians with a characteristic standard deviation (proportional to the inherent noise of GPS samples). The figure below visualizes a sample that I expect has two such clusters. The image is 25 meters wide and 13 meters tall.</p>
  
  <p><a href="https://i.stack.imgur.com/cECqI.png" rel="noreferrer"><img src="https://i.stack.imgur.com/cECqI.png" alt="enter image description here"></a></p>
  
  <p>The <code>sklearn</code> module has a function <a href="http://scikit-learn.org/stable/modules/generated/sklearn.mixture.GaussianMixture.html#sklearn.mixture.GaussianMixture.fit" rel="noreferrer"><code>sklearn.mixture.GaussianMixture</code></a> which allows you to fit a mixture of Gaussians to data. The function has a parameter, <code>covariance_type</code>, that enables you to assume different things about the shape of the Gaussians. You can, for example, assume them to be uniform using the <code>'tied'</code> argument.</p>
  
  <p>However, it does not appear directly possible to assume the covariance matrices to remain constant. From the <code>sklearn</code> source code it seems trivial to make a modification that enables this but it feels a bit excessive to make a pull request with an update that allows this (also I don't want to accidentally add bugs in <code>sklearn</code>). Is there a better way to fit a mixture to data where the covariance matrix of each Gaussian is fixed?</p>
  
  <p>I want to assume that the SD should remain constant at around 3 meters for each component, since that is roughly the noise level of my GPS samples.</p>