title: Python sklearn.mixture.GMM not robust to scale?
body: <p>I'm using <a href="http://scikit-learn.org/0.11/modules/generated/sklearn.mixture.GMM.html" rel="nofollow">sklearn.mixture.GMM</a> in Python, and the results seem to depend on data scaling. In the following code example, I change the overall scaling but I do NOT change the relative scaling of the dimensions. Yet under the three different scaling settings I get completely different results:</p>
  
  <pre><code>from sklearn.mixture import GMM
  from numpy import array, shape
  from numpy.random import randn
  from random import choice
  
  # centroids will be normally-distributed around zero:
  truelumps = randn(20, 5) * 10
  
  # data randomly sampled from the centroids:
  data = array([choice(truelumps) + randn(5) for _ in xrange(1000)])
  
  for scaler in [0.01, 1, 100]:
      scdata = data * scaler
      thegmm = GMM(n_components=10)
      thegmm.fit(scdata, n_iter=1000)
      ll = thegmm.score(scdata)
      print sum(ll)
  </code></pre>
  
  <p>Here's the output I get:</p>
  
  <pre><code>GMM(cvtype='diag', n_components=10)
  7094.87886779
  GMM(cvtype='diag', n_components=10)
  -14681.566456
  GMM(cvtype='diag', n_components=10)
  -37576.4496656
  </code></pre>
  
  <p>In principle, I don't think the overall data scaling should matter, and the total log-likelihoods should come out similar each time. But maybe there's an implementation issue I'm overlooking?</p>