from sklearn.cluster import SpectralClustering sc = SpectralClustering(n_clusters=2,eigen_solver='arpack',\ affinity='nearest_neighbors') yP = sc.fit_predict(XB) # No separation between fit and predict calls # Need to fit and predict on same dataset # Arbitrary labels with unsupervised clustering may need to be reversed if len(XB[yP!=yB]) > n/4: yP = 1 - yP assess(yP)