sklearn.cluster
.MiniBatchKMeans¶
- class sklearn.cluster.MiniBatchKMeans¶
Agrupamiento por K-Medias en mini lotes.
Más información en el Manual de usuario.
- Parámetros
- n_clustersint, default=8
El número de conglomerados a formar así como el número de centroides a generar.
- init{“k-means++”, “random”}, callable o array-like de forma (n_clusters, n_features), default=”k-means++”
Método de inicialización:
“k-means++” : selecciona los centros de conglomerados iniciales para la agrupación k-mean de forma inteligente para acelerar la convergencia. Consulta la sección Notas en k_init para más detalles.
“random”: elige observaciones (filas)
n_clusters
al azar de los datos para los centroides iniciales.Si se pasa un arreglo, debe tener la forma (n_clusters, n_features) y da los centros iniciales.
Si se pasa un invocable, debe tomar los argumentos X, n_clusters y un estado aleatorio y devolver una inicialización.
- max_iterint, default=100
Número máximo de iteraciones sobre el conjunto de datos completo antes de parar, independientemente de cualquier heurística de criterio de parada anticipada.
- batch_sizeint, default=100
Tamaño de los mini lotes.
- verboseint, default=0
Modo de Verbosidad.
- compute_labelsbool, default=True
Calcule la asignación de etiquetas y la inercia para el conjunto de datos completo una vez que la optimización de minilotes haya convergido en el ajuste.
- random_stateentero, instancia de RandomState o None, default=None
Determina la generación de números aleatorios para la inicialización del centroide y la reasignación aleatoria. Utilice un int para que la aleatoriedad sea determinista. Consulta Glosario.
- tolfloat, default=0.0
Controlar la parada anticipada basándose en los cambios de centro relativos medidos por una varianza normalizada y suavizada de los cambios de posición media del centro al cuadrado. Esta heurística de parada anticipada se aproxima más a la utilizada en la variante por lotes de los algoritmos, pero induce una ligera carga computacional y de memoria sobre la heurística de inercia.
Para desactivar la detección de convergencia basada en el cambio de centro normalizado, establezca tol en 0,0 (predeterminado).
- max_no_improvementint, default=10
Controlar la parada anticipada en función del número consecutivo de minilotes que no produce una mejora en la inercia suavizada.
Para desactivar la detección de convergencia basada en la inercia, establece max_no_improvement como None.
- init_sizeint, default=None
Número de muestras a muestrear aleatoriamente para acelerar la inicialización (a veces a expensas de la precisión): el único algoritmo se inicializa ejecutando un KMeans por lotes en un subconjunto aleatorio de los datos. Esto tiene que ser mayor que n_clusters.
If
None
,init_size= 3 * batch_size
.- n_initint, default=3
Número de inicializaciones aleatorias que se prueban. A diferencia de KMeans, el algoritmo sólo se ejecuta una vez, utilizando la mejor de las inicializaciones
n_init
según la inercia.- reassignment_ratiofloat, default=0.01
Controla la fracción del número máximo de recuentos para que un centro sea reasignado. Un valor más alto significa que los centros de bajo recuento se reasignan más fácilmente, lo que significa que el modelo tardará más en converger, pero debería converger en una mejor agrupación.
- Atributos
- cluster_centers_ndarray de forma (n_clusters, n_features)
Coordenadas de los centros de conglomerado.
- labels_int
Labels of each point (if compute_labels is set to True).
- inertia_float
El valor del criterio de inercia asociado a la partición elegida (si compute_labels se establece como True). La inercia se define como la suma de las distancias cuadradas de las muestras a su vecino más cercano.
- n_iter_int
Número de lotes procesados.
- counts_ndarray de forma (n_clusters,)
Suma del peso de cada conglomerado.
Obsoleto desde la versión 0.24: Este atributo está obsoleto en 0.24 y se eliminará en 1.1 (cambio de nombre de 0.26).
- init_size_int
El número efectivo de muestras utilizadas para la inicialización.
Obsoleto desde la versión 0.24: Este atributo está obsoleto en 0.24 y se eliminará en 1.1 (cambio de nombre de 0.26).
Ver también
KMeans
La implementación clásica del método de agrupamiento basado en el algoritmo de Lloyd. Consume todo el conjunto de datos de entrada en cada iteración.
Notas
Visita https://www.eecs.tufts.edu/~dsculley/papers/fastkmeans.pdf
Ejemplos
>>> from sklearn.cluster import MiniBatchKMeans >>> import numpy as np >>> X = np.array([[1, 2], [1, 4], [1, 0], ... [4, 2], [4, 0], [4, 4], ... [4, 5], [0, 1], [2, 2], ... [3, 2], [5, 5], [1, -1]]) >>> # manually fit on batches >>> kmeans = MiniBatchKMeans(n_clusters=2, ... random_state=0, ... batch_size=6) >>> kmeans = kmeans.partial_fit(X[0:6,:]) >>> kmeans = kmeans.partial_fit(X[6:12,:]) >>> kmeans.cluster_centers_ array([[2. , 1. ], [3.5, 4.5]]) >>> kmeans.predict([[0, 0], [4, 4]]) array([0, 1], dtype=int32) >>> # fit on the whole data >>> kmeans = MiniBatchKMeans(n_clusters=2, ... random_state=0, ... batch_size=6, ... max_iter=10).fit(X) >>> kmeans.cluster_centers_ array([[3.95918367, 2.40816327], [1.12195122, 1.3902439 ]]) >>> kmeans.predict([[0, 0], [4, 4]]) array([1, 0], dtype=int32)
Métodos
Calcula los centroides en X dividiéndolo en minilotes.
Calcula los centros de los conglomerados y predice el índice de conglomerados para cada muestra.
Calcula la agrupación y transforme X en un espacio de distancia de agrupación.
Obtiene los parámetros para este estimador.
Actualiza la estimación de k medias en un solo mini lote X.
Predice el conglomerado más cercano al que pertenece cada muestra en X.
Opuesto al valor de X en el objetivo de K-medias.
Establece los parámetros de este estimador.
Transformar X en un espacio de distancia de conglomerado.
- fit()¶
Calcula los centroides en X dividiéndolo en minilotes.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Instancias de entrenamiento para agrupar. Hay que tener en cuenta que los datos se convertirán a la ordenación C, lo que provocará una copia de memoria si los datos dados no son C-contiguous.
- yIgnorado
No se utiliza, se presenta aquí por coherencia de la API por convención.
- sample_weightarray-like de forma (n_samples,), default=None
Los pesos de cada observación en X. Si es None, se asigna a todas las observaciones el mismo peso (default: None).
Nuevo en la versión 0.20.
- Devuelve
- self
- fit_predict()¶
Calcula los centros de los conglomerados y predice el índice de conglomerados para cada muestra.
Método de conveniencia; equivalente a llamar a fit(X) seguido de predict(X).
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Nuevos datos a transformar.
- yIgnorado
No se utiliza, se presenta aquí por coherencia de la API por convención.
- sample_weightarray-like de forma (n_samples,), default=None
Los pesos de cada observación en X. Si es None, se asigna a todas las observaciones el mismo peso.
- Devuelve
- labelsndarray de forma (n_samples,)
Índice del conglomerado al que pertenece cada muestra.
- fit_transform()¶
Calcula la agrupación y transforme X en un espacio de distancia de agrupación.
Equivalente a fit(X).transform(X), pero implementado de forma más eficiente.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Nuevos datos a transformar.
- yIgnorado
No se utiliza, se presenta aquí por coherencia de la API por convención.
- sample_weightarray-like de forma (n_samples,), default=None
Los pesos de cada observación en X. Si es None, se asigna a todas las observaciones el mismo peso.
- Devuelve
- X_newndarray de forma (n_samples, n_clusters)
X transformado en el nuevo espacio.
- 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()¶
Actualiza la estimación de k medias en un solo mini lote X.
- Parámetros
- Xarray-like de forma (n_samples, n_features)
Coordenadas de los puntos de datos a conglomerados. Debe tenerse en cuenta que X será copiado si no es C-contiguous.
- yIgnorado
No se utiliza, se presenta aquí por coherencia de la API por convención.
- sample_weightarray-like de forma (n_samples,), default=None
Los pesos de cada observación en X. Si es None, se asigna a todas las observaciones el mismo peso (default: None).
- Devuelve
- self
- predict()¶
Predice el conglomerado más cercano al que pertenece cada muestra en X.
En la literatura de cuantificación vectorial,
cluster_centers_
se denomina libro de códigos y cada valor devuelto porpredict
es el índice del código más cercano en el libro de códigos.- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Nuevos datos a predecir.
- sample_weightarray-like de forma (n_samples,), default=None
Los pesos de cada observación en X. Si es None, se asigna a todas las observaciones el mismo peso (default: None).
- Devuelve
- labelsndarray de forma (n_samples,)
Índice del conglomerado al que pertenece cada muestra.
- score()¶
Opuesto al valor de X en el objetivo de K-medias.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Nuevos datos.
- yIgnorado
No se utiliza, se presenta aquí por coherencia de la API por convención.
- sample_weightarray-like de forma (n_samples,), default=None
Los pesos de cada observación en X. Si es None, se asigna a todas las observaciones el mismo peso.
- Devuelve
- scorefloat
Opuesto al valor de X en el objetivo de K-medias.
- 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
- selfestimator instance
Instancia del estimador.
- transform()¶
Transformar X en un espacio de distancia de conglomerado.
En el nuevo espacio, cada dimensión es la distancia a los centros de conglomerado. Ten en cuenta que incluso si X es disperso, el arreglo devuelto por
transform
normalmente será denso.- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Nuevos datos a transformar.
- Devuelve
- X_newndarray de forma (n_samples, n_clusters)
X transformado en el nuevo espacio.