poster
2019-12-10, 20:48
我有一个高维高斯,均值M和协方差矩阵V。我想计算点p到M的距离,并考虑V(我想这是p与M?的标准偏差的距离)。
用不同的措词,我从M处取一个1σ的椭圆,并想检查p是否在该椭圆内。
回答:
如果V是高斯的有效协方差矩阵,则它是对称正定的,因此定义了有效的标量积。顺便说一下, inv(V)也可以。
因此,假设M和p是列向量,则可以将距离定义为:
d1 = sqrt((Mp)'*V*(Mp)); d2 = sqrt((Mp)'*inv(V)*(Mp)); Matlab的一种将d2重写为(可能是一些不必要的括号):
d2 = sqrt((Mp)'*(V\(Mp))); 令人高兴的是,当V是单位矩阵时,则d1==d2 ,它对应于经典的欧几里得距离。为了找到答案,您必须使用d1或d2作为练习(对不起,我的一部分工作是教学)。写出多维高斯公式并将其与一维情况进行比较,因为多维情况仅是一维的特定情况(或执行一些数值实验)。
注意:在高维空间或要测试的很多点上,您可能会从V的特征向量和特征值(即椭球的主轴及其相应方差)中找到一种聪明/更快的方法。
希望这可以帮助。
一种。
更多&回答... (https://stackoverflow.com/questions/4455066)
用不同的措词,我从M处取一个1σ的椭圆,并想检查p是否在该椭圆内。
回答:
如果V是高斯的有效协方差矩阵,则它是对称正定的,因此定义了有效的标量积。顺便说一下, inv(V)也可以。
因此,假设M和p是列向量,则可以将距离定义为:
d1 = sqrt((Mp)'*V*(Mp)); d2 = sqrt((Mp)'*inv(V)*(Mp)); Matlab的一种将d2重写为(可能是一些不必要的括号):
d2 = sqrt((Mp)'*(V\(Mp))); 令人高兴的是,当V是单位矩阵时,则d1==d2 ,它对应于经典的欧几里得距离。为了找到答案,您必须使用d1或d2作为练习(对不起,我的一部分工作是教学)。写出多维高斯公式并将其与一维情况进行比较,因为多维情况仅是一维的特定情况(或执行一些数值实验)。
注意:在高维空间或要测试的很多点上,您可能会从V的特征向量和特征值(即椭球的主轴及其相应方差)中找到一种聪明/更快的方法。
希望这可以帮助。
一种。
更多&回答... (https://stackoverflow.com/questions/4455066)