Cómo calcular la distancia entre dos matrices que no son del mismo tamaño

Parece que necesitarás generalizar tu función métrica

Queremos que una función (nuestra métrica) satisfaga todas las [matemáticas] x, y, z [/ matemáticas] en nuestro espacio

  • [matemáticas] d (x, y) = 0 \ Leftrightarrow x = y [/ matemáticas]
  • [matemáticas] d (x, y) = d (y, x) [/ matemáticas]
  • [matemáticas] d (x, y) \ le d (x, z) + d (z, y) [/ matemáticas]

Si tenemos una norma, también tenemos una métrica: [matemáticas] d (x, y) = \ | xy \ | [/ matemáticas]

Algunas métricas vienen a la mente para matrices con el mismo tamaño.

  • 1 norma inducida: resumir las diferencias de las entradas
    • [matemáticas] d (A, B) = \ sum_i \ sum_j | a_ {ij} -b_ {ij} | [/ matemáticas]
  • Matriz euclidiana, o inducida por la norma Frobenius (inducida por la norma 2): Sume los cuadrados de las diferencias, luego tome la raíz cuadrada.
    • [matemáticas] d (A, B) = \ sqrt {\ sum_i \ sum_j | a_ {ij} – b_ {ij} | ^ 2} [/ matemáticas]
  • Alguna otra métrica inducida por una norma de matriz.

Si nuestras matrices son de diferentes tamaños, necesitaremos encontrar alguna forma de hacerlas compatibles. Me parece que el primer paso sería cambiar el tamaño de las matrices agregando filas y columnas de ceros adicionales.

[matemáticas] d ^ {r} (A, B) = d (A ^ {r}, B ^ {r}) [/ matemáticas]

Donde [math] A, B [/ math] son ​​las matrices originales y [math] A ^ {r}, B ^ {r} [/ math] son ​​las redimensionadas.

Como ejemplo

[matemáticas] A = \ begin {bmatrix} a_ {11} y a_ {12} y a_ {13} \\ a_ {21} y a_ {22} y a_ {23} \ end {bmatrix} [/ math]

[matemáticas] B = \ begin {bmatrix} b_ {11} & b_ {12} \\ b_ {21} & b_ {22} \\ b_ {31} & b_ {32} \ end {bmatrix} [/ math]

[matemáticas] A ^ {r} = \ begin {bmatrix} a_ {11} y a_ {12} y a_ {13} \\ a_ {21} y a_ {22} y a_ {23} \\ 0 y 0 y 0 \ end {bmatrix} [/ math]

[matemáticas] B ^ {r} = \ begin {bmatrix} b_ {11} & b_ {12} & 0 \\ b_ {21} & b_ {22} & 0 \\ b_ {31} & b_ {32} & 0 \ end {bmatrix} [/ math]

Ahora, si nos detenemos aquí, no sería una métrica adecuada porque tendríamos más de un objeto cero, y podemos hacer que la distancia entre dos matrices sea cero, incluso si son diferentes (terminan igual después del cambio de tamaño).

Podemos trabajar con la clase de equivalencia de matrices donde después de cambiar el tamaño son las mismas y detenerlo allí, o podemos agregar un término adicional a nuestra métrica que tenga en cuenta la diferencia en las dimensiones de la matriz antes de cambiar el tamaño.

Si vamos con este último, se vería así

[matemáticas] d ^ {r} (A, B) = d (A ^ {r}, B ^ {r}) + | n_1 – n_2 | + | m_1 – m_2 | [/ matemáticas]

Si [matemática] A, B [/ matemática] son ​​de la misma dimensión, se reduce a cualquier métrica que estaba utilizando antes.

La distancia que debe usar depende de lo que esté tratando de medir. Si ambas matrices representan resultados de 128 dimensiones, una para un grupo que contiene 100 muestras y la otra para un grupo que contiene 80 muestras, la siguiente distancia podría ser útil:

Una cosa que puedes probar es tomar [math] A \ cdot A ^ T [/ math] (que debería darte una matriz [math] 128 \ times 128 [/ math]) y [math] B \ cdot B ^ T [ / math] (que también da una matriz [math] 128 \ times 128 [/ math]).

Ahora tiene dos matrices de dimensiones iguales, por lo que puede usar cualquier norma de matriz común (por ejemplo, la norma de Frobenius de su diferencia). Se recomienda dividir primero ambas matrices resultantes entre [matemáticas] 100 [/ matemáticas] para la primera y [matemáticas] 80 [/ matemáticas] para la otra, para “normalizarlas” (el producto [matemáticas] AA ^ Se puede esperar que T [/ math] sea “mayor” debido a que [math] A [/ math] tiene una dimensión de [math] 100 [/ math]).