2 votos

¿Cómo encontrar el número de clusters cuando más de un conjunto de datos se agrega como uno?

Supongamos que 3 conjuntos de datos tienen 3, 7 y 4 clusters en sus respectivos conjuntos de datos.

Cuando los agrego como un conjunto de datos, ¿cuál es el número más seguro de clústeres para elegir como perímetro para kmeans o cualquier agrupación supervisada?

Ya lo he intentado considerando average(3,7,4) pero no me da ni de lejos una buena solución ya que el conjunto de datos puede variar con las dimensiones, el número de muestras, etc.

0voto

throwaway Puntos 18

Depende del grado de solapamiento entre los clusters de los conjuntos de datos.

Por ejemplo, imagine que los puntos de datos se encuentran dentro de los clusters de abajo, que están coloreados según el conjunto de datos: rojo para el conjunto de datos 1 (3 clusters), verde para el conjunto de datos 2 (7 clusters), azul para el conjunto de datos 3 (4 clusters). Los clusters pueden ser completamente disjuntos (gráfico de la izquierda), dando un máximo de 14 clusters en los datos agregados. En el extremo opuesto (gráfico central), los clusters pueden solaparse de forma que se fusionen en un único cluster en los datos agregados. O bien, puede haber un solapamiento parcial (gráfico de la derecha), dando lugar a un número intermedio de conglomerados en los datos agregados.

enter image description here

Por lo tanto, suponiendo que los conglomerados iniciales estén correctamente identificados, los datos agregados podrían contener entre un solo conglomerado y 14 conglomerados (el número total de conglomerados iniciales). El número no puede reducirse más allá de eso sin otras suposiciones.

0voto

Sephy Puntos 18893

Respuesta de @user20160 es correcto. Realmente no tienes forma de saber el número de clusters que creará la combinación, porque no sabes cómo se solaparán esos clusters. Supongo que podría intentar estimarlo calculando la superposición de clusters de alguna manera antes de fusionar los conjuntos de datos, pero eso podría ser complicado dependiendo de la dimensionalidad de sus datos. También podría intentar responder a la pregunta "¿Cuántos clusters hay en este conjunto de datos?" utilizando un algoritmo de clustering diferente.

Los algoritmos de clustering basados en centroides, como k-means, no suelen ser la herramienta adecuada para esta tarea.* Si sus conjuntos de datos son grandes, podría considerar un algoritmo basado en la densidad, como DBSCAN o HDBSCAN. Si es bastante pequeño (<100), el clustering jerárquico podría ser todo lo que necesita.

Ambos tienen sus propios inconvenientes/nuances†, pero creo que ambos te serían más útiles para tratar de resolver este problema.

Supongo que si lo necesitas, podrías usar esos algoritmos para informar tu elección de un valor de $k$ para luego utilizarlo en k-means, pero no sé exactamente cuáles serían las implicaciones de eso, o cuán útil sería el resultado más allá de la salida del primer algoritmo.

*Si está puesto en k-means, supongo que podría analizar todos los valores posibles de <span class="math-container">$k [1, x]$</span> donde <span class="math-container">$x = \sum(k_i)$</span> para todos sus conjuntos de datos <span class="math-container">$i$</span> pero creo que se puede beneficiar de otros métodos.

†Los enfoques basados en la densidad suelen requerir el ajuste de los hiperparámetros, la agrupación jerárquica requiere que se elija una función de enlace y se establezca un punto de corte para podar el dendrograma

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X