@classmethod
def fit(kls, nc, X, lims):
    from sklearn import mixture
    model = mixture.GMM(nc, covariance_type='full', n_iter=1000)
    model.fit(X)
    if (not model.converged_):
        raise ValueError('Your data is strange. Gaussian mixture failed to converge')
    return kls(model.weights_, model.means_, model.covars_, lims)
@classmethod
def fit(kls, nc, X, lims):
    from sklearn import mixture
    model = mixture.GMM(nc, covariance_type='full', n_iter=1000)
    model.fit(X)
    if (not model.converged_):
        raise ValueError('Your data is strange. Gaussian mixture failed to converge')
    return kls(model.weights_, model.means_, model.covars_, lims)