2012-07-05 83 views
0

我正在开发一个java项目,并且有两个2x int数组都是10x15。我想转换他们之间的Mahalanobis distance。它们按照数组的x轴分类(大小10)。我知道你必须在这些组中找到平均值并重新分配数据以使其居中。我现在的问题是生成计算所需的协方差矩阵。如果有人知道这样做的好方法或指向一个有用的指南,可以指导我通过3D过程,这将是一个很大的帮助。谢谢。我应该如何在Java中实现Mahalanobis距离函数?

回答

1

A 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) 

最后一个是您正在寻找的协方差矩阵。我建议你也阅读上面的维基链接。

+0

感谢您的帮助。对于任何未来需要这样做的人来说,都有一个叫做Colt的Java库,它有一整套用于处理矩阵的函数。 – Clayton 2012-07-06 17:32:12

相关问题