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

Ejemplos usando sklearn.cluster.spectral_clustering