'Performs clustering on X and returns cluster labels.
Parameters
X : ndarray, shape (n_samples, n_features)
Input data.
Returns
y : ndarray, shape (n_samples,)
cluster labels'

def fit_predict(self, X, y=None):

    self.fit(X)
    return self.labels_
