假设我有nn数据点x1,…,xnx1,…,xn, 其中每一个都是pp维。让ΣΣ是这些样本的(非奇异)总体协方差。关于ΣΣ,计算平方马氏距离向量的最有效方法是什么(从0⃗ 0→) 的 n 个数据点。
那就是我们要计算向量(xT1Σ−1x1,…,xTnΣ−1xn)(x1TΣ−1x1,…,xnTΣ−1xn).
计算逆Σ−1Σ−1对于大型矩阵来说似乎很慢。有更快的方法吗?
让xx成为您的数据点之一。
计算Cholesky分解Σ=LL⊤Σ=LL⊤.
定义y=L−1xy=L−1x.
计算yy通过前向替换Ly=xLy=x.
到原点的马氏距离是欧几里得范数的平方yy:
x⊤Σ−1x=x⊤(LL⊤)−1x=x⊤(L⊤)−1L−1x=x⊤(L−1)⊤L−1x=(L−1x)⊤(L−1x)=∥y∥2.x⊤Σ−1x=x⊤(LL⊤)−1x=x⊤(L⊤)−1L−1x=x⊤(L−1)⊤L−1x=(L−1x)⊤(L−1x)=‖y‖2.