sklearn.cluster
.spectral_clustering¶
- sklearn.cluster.spectral_clustering()¶
Aplicar la agrupación a una proyección del Laplaciano normalizado.
En la práctica, el Spectral Clustering es muy útil cuando la estructura de los conglomerados individuales es altamente no convexa o, más generalmente, cuando una medida del centro y la dispersión del conglomerado no es una descripción adecuada del conglomerado completo. Por ejemplo, cuando los conglomerados son círculos anidados en el plano 2D.
Si la afinidad es la matriz de adyacencia de un grafo, este método puede utilizarse para encontrar cortes de grafos normalizados.
Más información en el Manual de usuario.
- Parámetros
- affinity{array-like, sparse matrix} de forma (n_samples, n_samples)
La matriz de afinidad que describe la relación de las muestras a incrustar. Debe ser simétrica.
- Ejemplos posibles:
matriz de adyacencia de un grafo,
núcleo de calor de la matriz de distancia por pares de las muestras,
matriz simétrica de conectividad de los k vecinos más cercanos de las muestras.
- n_clustersint, default=None
Número de conglomerados a extraer.
- n_componentsint, default=n_clusters
Número de vectores eigen que se utilizarán para spectral embedding
- eigen_solver{None, “arpack”, “lobpcg”, or “amg”}
La estrategia de descomposición de autovalores a utilizar. AMG requiere la instalación de pyamg. Puede ser más rápido en problemas muy grandes y dispersos, pero también puede conducir a inestabilidades. Si es None, entonces se utiliza
'arpack'
.- random_stateentero, instancia de RandomState, default=None
Un generador de números pseudo aleatorios utilizado para la inicialización de la descomposición de los vectores lobpcg eigen cuando eigen_solver == “amg” y por la inicialización de K-medias. Utiliza un int para que la aleatoriedad sea determinista. Consulta Glossary.
- n_initint, default=10
Número de veces que se ejecutará el algoritmo k-medias con diferentes semillas de centroides. El resultado final será el mejor resultado de n_init ejecuciones consecutivas en términos de inercia.
- eigen_tolfloat, default=0.0
Criterio de parada para la eigendecomposición de la matriz laplaciana cuando se utiliza arpack eigen_solver.
- assign_labels{“kmeans”, “discretize”}, default=”kmeans”
La estrategia a utilizar para asignar etiquetas en el espacio de embedding. Hay dos maneras de asignar etiquetas después de embedding laplaciano. Se puede aplicar k-medias y es una opción popular. Pero también puede ser sensible a la inicialización. La discretización es otro enfoque que es menos sensible a la inicialización aleatoria. Consulta el artículo “Multiclass spectral clustering” al que se hace referencia más adelante para obtener más detalles sobre el enfoque de discretización.
- verbosebool, default=False
Modo de Verbosidad.
Nuevo en la versión 0.24.
- Devuelve
- labelsarreglo de enteros, shape: n_samples
Las etiquetas de los conglomerados.
Notas
El grafo debe contener sólo un componente de conexión, de lo contrario los resultados tienen poco sentido.
Este algoritmo resuelve el corte normalizado para k=2: es un agrupamiento espectral normalizada.
Referencias
Normalized cuts and image segmentation, 2000 Jianbo Shi, Jitendra Malik http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.160.2324
A Tutorial on Spectral Clustering, 2007 Ulrike von Luxburg http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.165.9323
Multiclass spectral clustering, 2003 Stella X. Yu, Jianbo Shi https://www1.icsi.berkeley.edu/~stellayu/publication/doc/2003kwayICCV.pdf