@@ -160,7 +160,8 @@ def discretize(vectors, *, copy=True, max_svd_restarts=30, n_iter_max=20,
160
160
@_deprecate_positional_args
161
161
def spectral_clustering (affinity , * , n_clusters = 8 , n_components = None ,
162
162
eigen_solver = None , random_state = None , n_init = 10 ,
163
- eigen_tol = 0.0 , assign_labels = 'kmeans' ):
163
+ eigen_tol = 0.0 , assign_labels = 'kmeans' ,
164
+ verbose = False ):
164
165
"""Apply clustering to a projection of the normalized Laplacian.
165
166
166
167
In practice Spectral Clustering is very useful when the structure of
@@ -222,6 +223,9 @@ def spectral_clustering(affinity, *, n_clusters=8, n_components=None,
222
223
the 'Multiclass spectral clustering' paper referenced below for
223
224
more details on the discretization approach.
224
225
226
+ verbose : bool, default=False
227
+ Verbosity mode.
228
+
225
229
Returns
226
230
-------
227
231
labels : array of integers, shape: n_samples
@@ -265,10 +269,12 @@ def spectral_clustering(affinity, *, n_clusters=8, n_components=None,
265
269
eigen_solver = eigen_solver ,
266
270
random_state = random_state ,
267
271
eigen_tol = eigen_tol , drop_first = False )
272
+ if verbose :
273
+ print ('Computing label assignment using %s' % assign_labels )
268
274
269
275
if assign_labels == 'kmeans' :
270
276
_ , labels , _ = k_means (maps , n_clusters , random_state = random_state ,
271
- n_init = n_init )
277
+ n_init = n_init , verbose = verbose )
272
278
else :
273
279
labels = discretize (maps , random_state = random_state )
274
280
@@ -381,6 +387,9 @@ class SpectralClustering(ClusterMixin, BaseEstimator):
381
387
``-1`` means using all processors. See :term:`Glossary <n_jobs>`
382
388
for more details.
383
389
390
+ verbose : bool, default=False
391
+ Verbosity mode.
392
+
384
393
Attributes
385
394
----------
386
395
affinity_matrix_ : array-like of shape (n_samples, n_samples)
@@ -443,7 +452,8 @@ class SpectralClustering(ClusterMixin, BaseEstimator):
443
452
def __init__ (self , n_clusters = 8 , * , eigen_solver = None , n_components = None ,
444
453
random_state = None , n_init = 10 , gamma = 1. , affinity = 'rbf' ,
445
454
n_neighbors = 10 , eigen_tol = 0.0 , assign_labels = 'kmeans' ,
446
- degree = 3 , coef0 = 1 , kernel_params = None , n_jobs = None ):
455
+ degree = 3 , coef0 = 1 , kernel_params = None , n_jobs = None ,
456
+ verbose = False ):
447
457
self .n_clusters = n_clusters
448
458
self .eigen_solver = eigen_solver
449
459
self .n_components = n_components
@@ -458,6 +468,7 @@ def __init__(self, n_clusters=8, *, eigen_solver=None, n_components=None,
458
468
self .coef0 = coef0
459
469
self .kernel_params = kernel_params
460
470
self .n_jobs = n_jobs
471
+ self .verbose = verbose
461
472
462
473
def fit (self , X , y = None ):
463
474
"""Perform spectral clustering from features, or affinity matrix.
@@ -523,7 +534,8 @@ def fit(self, X, y=None):
523
534
random_state = random_state ,
524
535
n_init = self .n_init ,
525
536
eigen_tol = self .eigen_tol ,
526
-
8000
assign_labels = self .assign_labels )
537
+ assign_labels = self .assign_labels ,
538
+ verbose = self .verbose )
527
539
return self
528
540
529
541
def fit_predict (self , X , y = None ):
0 commit comments