Tengo una matriz de correlación que establece cómo cada elemento se correlaciona con el otro elemento. Por lo tanto, para N elementos, ya tengo una matriz de correlación N * N. Usando esta matriz de correlación, ¿cómo agrupo los N elementos en M bins para poder decir que los Nk Items en el kth bin se comportan de la misma manera? Amablemente ayúdame. Todos los valores de los artículos son categóricos.
Gracias. Avíseme si necesita más información. Necesito una solución en Python, pero cualquier ayuda para impulsarme hacia los requisitos será de gran ayuda.
clustering
python
k-means
Abhishek093
fuente
fuente
Respuestas:
Parece un trabajo para el modelado de bloques. Google para "modelado de bloques" y los primeros resultados son útiles.
Digamos que tenemos una matriz de covarianza donde N = 100 y en realidad hay 5 grupos:
Lo que intenta hacer el modelado de bloques es encontrar un orden de las filas, de modo que los grupos se vuelvan aparentes como 'bloques':
A continuación se muestra un ejemplo de código que realiza una búsqueda codiciosa básica para lograr esto. Probablemente sea demasiado lento para sus variables 250-300, pero es un comienzo. Vea si puede seguir los comentarios:
fuente
¿Has mirado el agrupamiento jerárquico? Puede funcionar con similitudes, no solo distancias. Puede cortar el dendrograma a una altura donde se divide en k grupos, pero generalmente es mejor inspeccionar visualmente el dendrograma y decidir la altura de corte.
La agrupación jerárquica también se usa a menudo para producir una reordenación inteligente para una visualización de matriz de similitud como se ve en la otra respuesta: coloca entradas más similares una al lado de la otra. ¡Esto también puede servir como una herramienta de validación para el usuario!
fuente
¿Has estudiado el agrupamiento de correlaciones ? Este algoritmo de agrupamiento utiliza la información de correlación positiva / negativa por pares para proponer automáticamente el número óptimo de grupos con una interpretación probabilística generativa funcional y rigurosa bien definida .
fuente
Correlation clustering provides a method for clustering a set of objects into the optimum number of clusters without specifying that number in advance
. ¿Es esa una definición del método? En caso afirmativo, es extraño porque existen otros métodos para sugerir automáticamente el número de grupos, y también, ¿por qué entonces se llama "correlación".Filtraría en algún umbral significativo (significación estadística) y luego usaría la descomposición dulmage-mendelsohn para obtener los componentes conectados. Tal vez antes de que pueda intentar eliminar algún problema, como las correlaciones transitivas (A altamente correlacionado con B, B a C, C a D, por lo que hay un componente que los contiene a todos, pero de hecho D a A es bajo). puedes usar un algoritmo basado en la intermediación. Como alguien sugirió, no es un problema de biclustering, ya que la matriz de correlación es simétrica y, por lo tanto, no hay bi-algo.
fuente