def GaussianMixture(V, **kwargs):
    """Performs clustering on *V* by using Gaussian mixture models. The function uses :func:`sklearn.micture.GaussianMixture`. See sklearn documents 
    for details.

    :arg V: row-normalized eigenvectors for the purpose of clustering.
    :type V: :class:`numpy.ndarray`

    :arg n_clusters: specifies the number of clusters. 
    :type n_clusters: int
    """
    try:
        from sklearn.mixture import GaussianMixture
    except ImportError:
        raise ImportError(
            'Use of this function (GaussianMixture) requires the installation of sklearn.'
            )
    n_components = kwargs.pop('n_components', None)
    if n_components == None:
        n_components = kwargs.pop('n_clusters', None)
        if n_components == None:
            n_components = 1
    n_init = kwargs.pop('n_init', 1)
    mixture = GaussianMixture(n_init=n_init, n_components=n_components, **
        kwargs).fit(V)
    return mixture.fit_predict(V)
