¿Cómo se ordenan las matrices para que los valores altos y bajos se distribuyan en diagonal?

Animado por algunas de las contribuciones aquí, decidí estudiar la agrupación jerárquica durante una semana. A través de esto, puedo identificar “biclustering jerárquico” como el mejor método para tratar el problema en cuestión (1, 2).

¡Espero que ayude a las otras 20 personas que siguen esta pregunta! Supongo que todos quieren ver esto:


Espero que no sea grosero responder mi propia pregunta. Sinceramente, no sabía la respuesta cuando pregunté. ¡Ha sido divertido! Gracias por el aporte de todos.

Referencias

  1. Biclustering
  2. Loo, L.-H., LF Wu, y col. (2007) “Elaboración de perfiles multivariados basados ​​en imágenes de las respuestas farmacológicas de células individuales”. Nature Methods 4 (5): 445-453. http://tango.andrew.cmu.edu/~gus…

Según sus descripciones adicionales, no creo que esto tenga nada que ver con la diagonal (solo), porque usted dice que quiere agrupar a los estudiantes por sus capacidades. Esa es una función de todas las columnas. También dices que quieres agruparlos. Eso en sí mismo no se asigna a una dimensión lineal, nada inherentemente “ordenado” al respecto.

La agrupación es de hecho lo que quieres. ¿Jerárquico? tal vez, pero a priori no veo que este sea el enfoque específico que tienes que tomar. Como no necesita una estructura de árbol y parece creer que los grupos de temas de estudiantes vendrán en grupos bien separados, k-means o sus variantes son más naturales.

Ya tienes buenos vectores numéricos también. Solo clúster.

No sé si puede hacer una clasificación más alta o más baja simultáneamente en todas las instancias (puede que haya funcionado de esa manera en su ejemplo), pero definitivamente puede hacerlo por separado en todas las instancias. Es esencialmente un problema de coincidencia máxima , donde el objetivo es maximizar el número de 1 en la diagonal.
http://mathoverflow.net/question

En su problema, configuraría dos instancias:

1) Asignación de 1 al puntaje de prueba más alto para cada estudiante
2) Asignación de 1 al puntaje de prueba más bajo para cada estudiante

Luego, configure una matriz en cada instancia y ejecute un algoritmo de coincidencia máxima en las filas y columnas. Hay muchos algoritmos eficientes para hacer una coincidencia máxima en gráficos bipartitos, pero hacerlo en Excel puede requerir establecer un programa entero y resolverlo usando Solver. No tengo experiencia con eso, así que me detendré aquí. 😉