sklearn.cluster.Birch

class sklearn.cluster.Birch

Implementa el algoritmo de conglomerado Birch.

Se trata de un algoritmo de aprendizaje en línea, eficiente en cuanto a memoria, que se ofrece como alternativa a MiniBatchKMeans. Construye una estructura de datos en forma de árbol en la que los centroides de los conglomerados son leídos de la hoja (leaf). Estos pueden ser los centroides de los conglomerados finales o pueden ser proporcionados como entrada a otro algoritmo de conglomerado como AgglomerativeClustering.

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

Nuevo en la versión 0.16.

Parámetros
thresholdfloat, default=0.5

El radio del subgrupo obtenido al fusionar una nueva muestra y el subgrupo más cercano debe ser menor que el threshold. En caso contrario, se crea un nuevo subcluster. Si este valor se establece como muy bajo, se promueve la división (splitting) y viceversa.

branching_factorint, default=50

Número máximo de subconglomerados (subclusters) de CF en cada nodo. Si entra una nueva muestra tal que el número de subconglomerados excede el branching_factor entonces ese nodo se divide en dos nodos con los subconglomerados redistribuidos en cada uno. El subconglomerado padre de ese nodo se elimina y se añaden dos nuevos subconglomerados como padres de los 2 nodos divididos.

n_clustersentero, instancia de sklearn.cluster model, default=3

Número de conglomerados después del paso final de la conglomeración, que trata los subconglomerados de las hojas (leaves) como nuevas muestras.

  • None : el paso final de la conglomeración no se realiza y los subconglomerados son retornados en su estado actual.

  • sklearn.cluster Estimador : Si se proporciona un modelo, éste se ajusta tratando los subclomerados como nuevas muestras y los datos iniciales se asignan a la etiqueta del subclomerado más cercano.

  • int : el ajuste del modelo es AgglomerativeClustering con n_clusters configurado para ser igual al int.

compute_labelsbool, default=True

Si se deben calcular o no las etiquetas para cada ajuste.

copybool, default=True

Si se hace o no una copia de los datos dados. Si se establece en False, se sobrescribirán los datos iniciales.

Atributos
root__CFNode

Raíz (root) del CFTree.

dummy_leaf__CFNode

Puntero de inicio de todas las hojas (leaves).

subcluster_centers_ndarray

Los centroides de todos los subconglomerados que se leen directamente de las hojas.

subcluster_labels_ndarray

Etiquetas asignadas a los centroides de los subconglomerados después de ser conglomerados (clustered) globalmente.

labels_ndarray de forma (n_samples,)

Arreglo de etiquetas asignadas a los datos de entrada. Si se utiliza partial_fit en lugar de fit, las etiquetas se asignan al último lote de datos.

Ver también

MiniBatchKMeans

Implementación alternativa que realiza actualizaciones incrementales de las posiciones de los centros utilizando minilotes.

Notas

La estructura de datos en forma de árbol se compone de nodos y cada uno de ellos consta de un número de subconglomerados (subclusters). El número máximo de subconglomerados en un nodo viene determinado por el factor de ramificación (branching factor). Cada subconglomerado mantiene una suma lineal, una suma cuadrada y el número de muestras en ese subconglomerado. Además, cada subconglomerado puede tener un nodo como hijo, si el subconglomerado no es miembro de un nodo hoja.

Para que un nuevo punto entre en la raíz, se debe fusionar con el subconglomerado más cercano a él y se actualizan la suma lineal, la suma cuadrada y el número de muestras de ese subconglomerado. Esto se hace recursivamente hasta que se actualizan las propiedades del nodo hoja.

Referencias

Ejemplos

>>> from sklearn.cluster import Birch
>>> X = [[0, 1], [0.3, 1], [-0.3, 1], [0, -1], [0.3, -1], [-0.3, -1]]
>>> brc = Birch(n_clusters=None)
>>> brc.fit(X)
Birch(n_clusters=None)
>>> brc.predict(X)
array([0, 0, 0, 1, 1, 1])

Métodos

fit

Construye un árbol de CF para los datos de entrada.

fit_predict

Realiza el conglomerado en X y devuelve las etiquetas de los conglomerados.

fit_transform

Se ajustan los datos y luego se transforman.

get_params

Obtiene los parámetros para este estimador.

partial_fit

Aprendizaje en línea.

predict

Predecir los datos utilizando los centroids_ de los subconglomerados.

set_params

Establece los parámetros de este estimador.

transform

Transforma X en la dimensión de los centroides de los subconglomerados.

fit()

Construye un árbol de CF para los datos de entrada.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Datos de entrada.

yIgnorado

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

Devuelve
self

Estimador ajustado.

fit_predict()

Realiza el conglomerado en X y devuelve las etiquetas de los conglomerados.

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

Datos de entrada.

yIgnorado

No se utiliza, está presente para la coherencia de la API por convención.

Devuelve
labelsndarray de forma (n_samples,), dtype=np.int64

Etiquetas de conglomerado.

fit_transform()

Se ajustan los datos y luego se transforman.

Ajusta el transformador a X e y con los parámetros opcionales fit_params y devuelve una versión transformada de X.

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

Muestras de entrada.

yarray-like de forma (n_samples,) o (n_samples, n_outputs), default=None

Valores objetivo (Target values). Se usa None para las transformaciones no supervisadas.

**fit_paramsdict

Parámetros de ajuste adicionales.

Devuelve
X_newarreglo ndarray de forma (n_samples, n_features_new)

Arreglo transformado.

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.

partial_fit()

Aprendizaje en línea. Evita que se reconstruya el CFTree desde cero.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features), default=None

Datos de entrada. Si no se proporciona X, sólo se realiza el paso de conglomerado global.

yIgnorado

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

Devuelve
self

Estimador ajustado.

predict()

Predecir los datos utilizando los centroids_ de los subconglomerados.

Evita el cálculo de las normas de fila (row norms) de X.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Datos de entrada.

Devuelve
labelsndarray de forma(n_samples,)

Datos etiquetados.

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.

transform()

Transforma X en la dimensión de los centroides de los subconglomerados.

Cada dimensión representa la distancia del punto de la muestra a cada centroide del conglomerado.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Datos de entrada.

Devuelve
X_trans{array-like, sparse matrix} de forma (n_samples, n_clusters)

Datos transformados.