Cómo encontrar grupos en estos datos

Bueno, lo simple es asumir cada matriz como un punto de datos en el espacio euclidiano de 1000 * 1000 dimensionalidad (esto se puede hacer concatenando a un vector grande el contenido de cada fila de una matriz … imagínelo como la operación vec en la manipulación de la matriz )

ahora que tiene la gran dimensionalidad, puede realizar un método de reducción de dimensionalidad.
el método más barato es a través de proyecciones aleatorias

Por lo tanto, sus datos son una matriz de tamaño (1600 * 1000000) y puede proyectarlos en una matriz (1600 * k) a través de proyecciones aleatorias, esto puede ser del orden 0 (log (1600)) ya que las proyecciones aleatorias se basan en el lema de Johnson-Lindenstrauss que establece que puede mantener con una precisión relativamente alta las distancias por pares de los puntos de datos del espacio inicial a un espacio de dimensión inferior (¡el lema depende del número de puntos y no de la dimensionalidad del espacio inicial! !!)

Lema de Johnson-Lindenstrauss

así que ahora que ha exprimido la información, tiene algunos ahorros computacionales …

Por cierto, cuando tiene matrices como puntos de datos, puede suponer que representan gráficos y probablemente puede consultar la literatura de minería de gráficos para definir distancias sobre los gráficos (el método clásico pero costoso es calcular los espectros de los gráficos, sus valores propios – y defina una métrica sobre ellos)

referencia:

Página en cmu.edu

espero que esto ayude

cualquiera que tenga una mejor intuición puede ayudar

No creo que haya una solución general a este problema.

La solución típica es escribir otra métrica de distancia que sea mucho más rápida y proporcione un límite inferior de la distancia, de modo que no sea necesario llamar la métrica costosa con tanta frecuencia.

Obviamente, la métrica de distancia rápida depende de su aplicación, así como la lenta.