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 comoAgglomerativeClustering
.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 esAgglomerativeClustering
conn_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
Tian Zhang, Raghu Ramakrishnan, Maron Livny BIRCH: An efficient data clustering method for large databases. https://www.cs.sfu.ca/CourseCentral/459/han/papers/zhang96.pdf
Roberto Perdisci JBirch - Java implementation of BIRCH clustering algorithm https://code.google.com/archive/p/jbirch
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
Construye un árbol de CF para los datos de entrada.
Realiza el conglomerado en
X
y devuelve las etiquetas de los conglomerados.Se ajustan los datos y luego se transforman.
Obtiene los parámetros para este estimador.
Aprendizaje en línea.
Predecir los datos utilizando los
centroids_
de los subconglomerados.Establece los parámetros de este estimador.
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
ey
con los parámetros opcionalesfit_params
y devuelve una versión transformada deX
.- 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.