def _number_of_clusters(estimator, X, y=None):
    """Utility to return number of clusters, excluding noise (if exists)"""
    label_set = set(estimator['clustering'].labels_)
    return len(label_set)-1*(-1 in label_set)