2012-07-05 72 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

相關問題