2016-09-05 32 views
0

D爲兩組觀測值之間的成對距離。我使用自定義距離函數來表示相似性。與大多數相似性度量不同,我爲計算距離選擇的方式爲類似對提供了很大的價值。如何將成對距離矩陣中的大值轉換爲小值?

0 1 2 

0 0 4 6 
1 5 9 7 
2 2 1 4 

在正常情況下,我們會考慮00點最相似的一對,因爲它們之間的距離值是0。在我的情況下,11是最相似的一對,因爲它們的最大值爲9。我需要使用成對距離矩陣來執行聚類。我需要一種方法將較大的值轉換爲可由聚類方法使用的小值。

回答

1

如果我理解正確,您只需要反轉元素的排序順序即可。下面的公式轉換最大的元素融入到一個新的矩陣,反之亦然的最小元素:

distance = max(max(D))*ones(size(D)) - D

其中D是從您的自定義距離函數矩陣。對於你上面的例子,這將導致

9 9 9 0 4 6 9 5 3 
9 9 9 - 5 9 7 = 4 0 2 
9 9 9 2 1 4 7 8 5 

如果您知道有您的自定義距離矩陣沒有負數,你也可以使用下面的公式,它只是抵消你的矩陣的所有元素(以避免除以零),它們反轉它們:

distance = 1./(D+1)