sklearn.cluster.AgglomerativeClustering

class sklearn.cluster.AgglomerativeClustering

Conglomerado Aglomerativo (Agglomerative Clustering)

Fusiona recursivamente el par de conglomerados que aumenta mínimamente una determinada distancia de enlazamiento (linkage distance).

Más información en el Manual de usuario.

Parámetros
n_clustersentero o None, default=2

El número de conglomerados a encontrar. Debe ser None si distance_threshold no es None.

affinitycadena de caracteres o invocable, default=”euclidean”

Métrica utilizada para calcular el enlazamiento. Puede ser «euclidean», «l1», «l2», «manhattan», «cosine», o «precomputed». Si linkage es «ward», sólo se acepta «euclidean». Si es «precomputed», se necesita una matriz de distancias (en lugar de una matriz de similitud) como entrada para el método fit.

memorycadena u objeto con interfaz joblib.Memory, default=None

Se utiliza para almacenar en caché la salida del cálculo del árbol. Por defecto, no se realiza ningún almacenamiento en caché. Si se proporciona una cadena, debe ser la ruta de acceso al directorio de almacenamiento en caché.

connectivityarray-like o invocable, default=None

Matriz de conectividad. Define para cada muestra las muestras vecinas siguiendo una estructura dada de los datos. Puede ser una matriz de conectividad en sí misma o un invocable que transforme los datos en una matriz de conectividad, como la derivada de kneighbors_graph. Por defecto es None, es decir, el algoritmo de conglomerado jerárquico no está estructurado.

compute_full_tree“auto” o booleano, default=”auto”

Detiene anticipadamente la construcción del árbol en n_clusters. Esto es útil para disminuir el tiempo de cálculo si el número de conglomerados no es pequeño comparado con el número de muestras. Esta opción sólo es útil cuando se especifica una matriz de conectividad. Hay que tener en cuenta también que cuando se varía el número de conglomerados y se utiliza la caché, puede ser favorable calcular el árbol completo. Debe ser True si distance_threshold no es None. Por defecto compute_full_tree es «auto», lo que equivale a True cuando distance_threshold no es None o que n_clusters es inferior al máximo entre 100 o 0.02 * n_samples. En caso contrario, «auto» equivale a False.

linkage{“ward”, “complete”, “average”, “single”}, default=”ward”

Indica qué criterio de enlazamiento (linkage) utilizar. El criterio de enlazamiento determina la distancia a utilizar entre los conjuntos de observación. El algoritmo fusionará los pares de conglomerados que minimicen este criterio.

  • “ward” minimiza la varianza de los conglomerados que se fusionan.

  • “average” utiliza la media de las distancias de cada observación de los dos conjuntos.

  • El enlazamiento “complete” o “maximum” utiliza las distancias máximas entre todas las observaciones de los dos conjuntos.

  • “simple” utiliza el mínimo de las distancias entre todas las observaciones de los dos conjuntos.

Nuevo en la versión 0.20: Se agregó la opción “single”

distance_thresholdfloat, default=None

El umbral de distancia de enlazamiento por encima del cual, los conglomerados no se fusionarán. Si no es None, n_clusters debe ser None y compute_full_tree debe ser True.

Nuevo en la versión 0.21.

compute_distancesbool, default=False

Calcula las distancias entre conglomerados incluso si no se utiliza distance_threshold. Esto se puede utilizar para hacer la visualización del dendrograma, pero introduce una sobrecarga computacional y de memoria.

Nuevo en la versión 0.24.

Atributos
n_clusters_int

El número de conglomerados encontrados por el algoritmo. Si distance_threshold=None, será igual al n_clusters proporcionado.

labels_ndarray de forma (n_samples)

etiquetas de conglomerado para cada punto

n_leaves_int

Número de hojas en el árbol jerárquico.

n_connected_components_int

El número estimado de componentes conectados en el grafo.

Nuevo en la versión 0.21: n_connected_components_ fue agregado para reemplazar n_components_.

children_array-like de forma (n_samples-1, 2)

Los hijos de cada nodo que no es hoja. Los valores inferiores a n_samples corresponden a las hojas del árbol que son las muestras originales. Un nodo i mayor o igual que n_samples es un nodo no hoja y tiene hijos children_[i - n_samples]. Como alternativa, en la iteración i-ésima, los children[i][0] y los children[i][1] se fusionan para formar el nodo n_samples + i

distances_array-like de forma (n_nodes-1,)

Distancias entre nodos en el lugar correspondiente en children_. Sólo se calcula si se utiliza distance_threshold o si compute_distances se configura como True.

Ejemplos

>>> from sklearn.cluster import AgglomerativeClustering
>>> import numpy as np
>>> X = np.array([[1, 2], [1, 4], [1, 0],
...               [4, 2], [4, 4], [4, 0]])
>>> clustering = AgglomerativeClustering().fit(X)
>>> clustering
AgglomerativeClustering()
>>> clustering.labels_
array([1, 1, 1, 0, 0, 0])

Métodos

fit

Ajusta el conglomerado jerárquico a partir de características o matriz de distancia.

fit_predict

Ajusta el conglomerado jerárquico a partir de las características o la matriz de distancia, y devuelve las etiquetas de los conglomerados.

get_params

Obtiene los parámetros para este estimador.

set_params

Establece los parámetros de este estimador.

fit()

Ajusta el conglomerado jerárquico a partir de características o matriz de distancia.

Parámetros
Xarray-like, forma (n_samples, n_features) o (n_samples, n_samples)

Instancias de entrenamiento para el conglomerado, o distancias entre instancias si affinity='precomputed'.

yIgnorado

No se utiliza, se presenta aquí para la coherencia de la API por convención.

Devuelve
self
fit_predict()

Ajusta el conglomerado jerárquico a partir de las características o la matriz de distancia, y devuelve las etiquetas de los conglomerados.

Parámetros
Xarray-like de forma (n_samples, n_features) o (n_samples, n_samples)

Instancias de entrenamiento para el conglomerado, o distancias entre instancias si affinity='precomputed'.

yIgnorado

No se utiliza, se presenta aquí para la coherencia de la API por convención.

Devuelve
labelsndarray de forma (n_samples,)

Etiquetas de conglomerado.

get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbool, default=True

Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Nombres de parámetros asignados a sus valores.

set_params()

Establece los parámetros de este estimador.

El método funciona tanto en estimadores simples como en objetos anidados (como Pipeline). Estos últimos tienen parámetros de la forma <component>__<parameter> para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia del estimador

Instancia del estimador.

Ejemplos usando sklearn.cluster.AgglomerativeClustering