我有一个具有均值 M 和协方差矩阵 V 的高维高斯。我想计算点 p 到 M 的距离,同时考虑 V(我猜这是 p 与 M 的标准差距离?)。
换句话说,我从 M 中取出一个椭圆,并想检查 p 是否在该椭圆内。
最佳答案
如果 V
是有效的高斯协方差矩阵,则它是对称正定的,因此定义了有效的标量积。顺便说一句,inv(V)
也是如此。
因此,假设 M 和 p 是列向量,您可以将距离定义为:
d1 = sqrt((M-p)'*V*(M-p));
d2 = sqrt((M-p)'*inv(V)*(M-p));
Matlab 将 d2
重写为(可能是一些不必要的括号):
d2 = sqrt((M-p)'*(V\(M-p)));
好处是当 V 是单位矩阵时,d1==d2
它对应于经典的欧几里得距离。要确定您是否必须使用 d1
或 d2
留作练习(抱歉,我的部分工作是教学)。编写多维高斯公式并将其与一维情况进行比较,因为多维情况只是一维情况的特例(或进行一些数值实验)。
注意:在非常高维的空间中或对于非常多的测试点,您可能会从 V 的特征向量和特征值(即椭球体的主轴及其相应的方差)中找到一种聪明/更快的方法。
希望这对您有所帮助。
A.
关于matlab - 计算点p到高维高斯(M,V)的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4455066/