'Predict posterior probability of each component given the data.
Parameters
X : array-like, shape (n_samples, n_features)
List of n_features-dimensional data points. Each row
corresponds to a single data point.
Returns
resp : array, shape (n_samples, n_components)
Returns the probability each Gaussian (state) in
the model given each sample.'

def predict_proba(self, X):

    self._check_is_fitted()
    X = _check_X(X, None, self.means_.shape[1])
    (_, log_resp) = self._estimate_log_prob_resp(X)
    return np.exp(log_resp)
