code: function(uid) {
          var jvmObject;
          this.logger = Logger.getLogger("ml_clusstering_GaussianMixture_js");
          if (uid) {
              if (uid instanceof org.apache.spark.ml.clustering.GaussianMixture) {
                  jvmObject = uid;
              } else {
                  jvmObject = new org.apache.spark.ml.clustering.GaussianMixture(uid);
              }
          } else {
              jvmObject = new org.apache.spark.ml.clustering.GaussianMixture();
          }
          Estimator.call(this, jvmObject);
  
      }
docs: var GaussianMixture = Java.type('org.apache.spark.ml.clustering.GaussianMixture'); 
  @classdesc
  :: Experimental ::
  Gaussian Mixture clustering.
  
  This class performs expectation maximization for multivariate Gaussian
  Mixture Models (GMMs).  A GMM represents a composite distribution of
  independent Gaussian distributions with associated "mixing" weights
  specifying each's contribution to the composite.
  
  Given a set of sample points, this class will maximize the log-likelihood
  for a mixture of k Gaussians, iterating until the log-likelihood changes by
  less than convergenceTol, or until it has reached the max number of iterations.
  While this process is generally guaranteed to converge, it is not guaranteed
  to find a global optimum.
  
  Note: For high-dimensional data (with many features), this algorithm may perform poorly.
  This is due to high-dimensional data (a) making it difficult to cluster at all (based
  on statistical/theoretical arguments) and (b) numerical issues with Gaussian distributions.
  @class
  @memberof module:eclairjs/ml/clustering
  @extends module:eclairjs/ml.Estimator
  @param {string} uid
  @constructor
  @function
  @name module:eclairjs/ml/clustering.GaussianMixture#<init>