样本协方差矩阵不可逆时怎么办?

机器算法验证 聚类 多元分析 协方差 协方差矩阵 逆矩阵
2022-02-25 19:29:15

我正在研究一些聚类技术,对于给定的 d 维向量集群,我假设多元正态分布并计算样本 d 维平均向量和样本协方差矩阵。

然后,当试图确定一个新的、看不见的 d 维向量是否属于这个集群时,我正在通过这个度量检查它的距离:

(Xiμ^X)σ^X1(Xiμ^X)>B0.95(p2,p2)

这需要我计算协方差矩阵的逆σ^X. 但是给定一些样本,我不能保证协方差矩阵是可逆的,如果不是,我该怎么办?

谢谢

2个回答

如果您的样本维度小于向量空间维度,则可能会出现奇异矩阵。如果您的样本少于d+1(什么时候d是你的维度),这种情况甚至必然会出现:k+1样本最多跨越一个d维超平面。给定这么小的样本,您显然无法计算正交空间中的方差。

这就是为什么通常使用文字 PCA,而是执行奇异值分解,这可用于计算矩阵的伪逆如果矩阵是可逆的,则伪逆将是逆矩阵。

但是,如果您看到不可逆矩阵,那么如果向量在集群所代表的超平面之外,那么您与集群的距离将毫无意义,因为您不知道正交空间中的方差(您可以想到这个方差为 0!)SVD 可以计算伪逆,但“方差”仍然不会由您的数据确定。

在这种情况下,您可能应该首先进行全局降维。仅当您实际上具有非冗余维度时,增加样本量才会有所帮助:无论您从分布中抽取多少样本y=x,矩阵永远是不可逆的,你将无法判断偏差xy关于标准偏差(0)。

此外,根据您计算协方差矩阵的方式,您可能会因灾难性取消而遇到数值问题。最简单的解决方法是始终首先将数据居中,以获得零均值。

我在尝试gaussian_kde在 Python 中使用 KDE 时遇到了这个问题,其中随机变量是某些图像的 784 像素。在我的情况下,原因是许多像素(在所有图像中)总是为零,所以根本不是随机的。为了解决这个问题,我只是在图像中添加了一些小的高斯噪声,瞧,现在协方差矩阵是可逆的。