Bootstrap

矩阵向量中两两间欧式距离计算

目标:希望通过的矩阵运算就能得出矩阵向量中两两之间的欧式距离
欧氏距离公式:
  • 一般而言,我们常见的欧式距离计算公式如下:

    • a,b 对应的是两组不同的向量
    • d i s t ( a , b ) = ( a 1 − b 1 ) 2 + ( a 2 − b 2 ) 2 + ⋅ ⋅ ⋅ ( a n − b n ) 2 dist(a,b)=\sqrt{(a_1-b_1)^{2}+(a_2-b_2)^{2}+···(a_n-b_n)^{2}} dist(a,b)=(a1b1)2+(a2b2)2+(anbn)2
  • 事实上对于上面的公式如果我们通过向量的角度来考虑,就会变成是下列形式:

    • a,b 对应的是两组不同的向量
    • d i s t ( a , b ) = d o t ( a , a ) − 2 ∗ d o t ( a , b ) + d o t ( b , b ) dist(a,b) = \sqrt{dot(a,a)-2*dot(a,b)+dot(b,b)} dist(a,b)=dot(a,a)2dot(a,b)+dot(b,b)
假设有下列矩阵 A A A:
  • A = [ a 1 a 2 a 3 b 1 b 2 b 3 ] {A}= \left[{\begin{array}{}{a{_1}}&{a{_2}}&{a{_3}}\\{b{_1}}&{b{_2}}&{b{_3}}\end{array}}\right] A=[a1b1a2b2a3b3]

  • 为了凑出上面的公式:

    • 先计算出 d o t ( A , A ) dot(A,A) dot(A,A) -> A A T {AA^T} AAT

      • A ‾ = [ a 1 a 2 a 3 b 1 b 2 b 3 ] [ a 1 b 1 a 2 b 2 a 3 b 3 ] = [ ( a 1 ) 2 + ( a 1 ) 2 + ( a 1 ) 2 ( a 1 )
;