目标:希望通过的矩阵运算就能得出矩阵向量中两两之间的欧式距离
欧氏距离公式:
-
一般而言,我们常见的欧式距离计算公式如下:
- 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)=(a1−b1)2+(a2−b2)2+⋅⋅⋅(an−bn)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)−2∗dot(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 )
-