@@ -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,11 @@ 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
+
229
+ .. versionadded:: 0.24
230
+
225
231
Returns
226
8000
232
-------
227
233
labels : array of integers, shape: n_samples
@@ -265,10 +271,12 @@ def spectral_clustering(affinity, *, n_clusters=8, n_components=None,
265
271
eigen_solver = eigen_solver ,
266
272
random_state = random_state ,
267
273
eigen_tol = eigen_tol , drop_first = False )
274
+ if verbose :
275
+ print (f'Computing label assignment using { assign_labels } ' )
268
276
269
277
if assign_labels == 'kmeans' :
270
278
_ , labels , _ = k_means (maps , n_clusters , random_state = random_state ,
271
- n_init = n_init )
279
+ n_init = n_init , verbose = verbose )
272
280
else :
273
281
labels = discretize (maps , random_state = random_state )
274
282
@@ -381,6 +389,11 @@ class SpectralClustering(ClusterMixin, BaseEstimator):
381
389
``-1`` means using all processors. See :term:`Glossary <n_jobs>`
382
390
for more details.
383
391
392
+ verbose : bool, default=False
393
+ Verbosity mode.
394
+
395
+ .. versionadded:: 0.24
396
+
384
397
Attributes
385
398
----------
386
399
affinity_matrix_ : array-like of shape (n_samples, n_samples)
@@ -443,7 +456,8 @@ class SpectralClustering(ClusterMixin, BaseEstimator):
443
456
def __init__ (self , n_clusters = 8 , * , eigen_solver = None , n_components = None ,
444
457
random_state = None , n_init = 10 , gamma = 1. , affinity = 'rbf' ,
445
458
n_neighbors = 10 , eigen_tol = 0.0 , assign_labels = 'kmeans' ,
446
- degree = 3 , coef0 = 1 , kernel_params = None , n_jobs = None ):
459
+ degree = 3 , coef0 = 1 , kernel_params = None , n_jobs = None ,
460
+ verbose = False ):
447
461
self .n_clusters = n_clusters
448
462
self .eigen_solver = eigen_solver
449
463
self .n_components = n_components
@@ -458,6 +472,7 @@ def __init__(self, n_clusters=8, *, eigen_solver=None, n_components=None,
458
472
self .coef0 = coef0
459
473
self .kernel_params = kernel_params
460
474
self .n_jobs = n_jobs
475
+ self .verbose = verbose
461
476
462
477
def fit (self , X , y = None ):
463
478
"""Perform spectral clustering from features, or affinity matrix.
@@ -523,7 +538,8 @@ def fit(self, X, y=None):
523
538
random_state = random_state ,
524
539
n_init = self .n_init ,
525
540
eigen_tol = self .eigen_tol ,
526
- assign_labels = self .assign_labels )
541
+ assign_labels = self .assign_labels ,
542
+ verbose = self .verbose )
527
543
return self
528
544
529
545
def fit_predict (self , X , y = None ):
0 commit comments