我正在研究java中的一个项目,并且有两个2d int数组,都是10x15。我想在它们之间转换Mahalanobis distance。它们按阵列的x轴分类(大小为10)。我知道您必须在这些组中找到平均值并重新分配数据以使其居中。我现在的问题是生成计算所需的协方差矩阵。如果有人知道一个很好的方法来做到这一点或指向一个有用的指南,可以指导我完成3D过程,这将是一个很大的帮助。感谢。
答案 0 :(得分:1)
covariance矩阵包含任意两个变量之间的预期关系。给定向量x
的统计分布,统计平均值为avg
:
covariance(i,j) = expected value of [ (x[i] - avg[i])(x[j] - avg[j]) ]
给定N
向量v_1 ... v_N
的统计集合,使用均值向量avg
,您可以估算出它们的分布的协方差,如下所示:
sample_covariance(i,j) = sum[for k=1..N]( (v_k[i] - avg[i])*(v_k[j] - avg[j]) ) / (N-1)
这最后是您正在寻找的协方差矩阵。我建议你也阅读上面的wiki链接。