Tôi có một ma trận (đối xứng) M
đại diện cho khoảng cách giữa mỗi cặp nút. Ví dụ,
ABCDEFGHIJKL A 0 20 20 20 40 60 60 60 100 120 120 120 B 20 0 20 20 60 80 80 80 120 140 140 140 C 20 20 0 20 60 80 80 80 120 140 140 140 D 20 20 20 0 60 80 80 80 120 140 140 140 E 40 60 60 60 0 20 20 20 60 80 80 80 F 60 80 80 80 20 0 20 20 40 60 60 60 G 60 80 80 80 20 20 0 20 60 80 80 80 H 60 80 80 80 20 20 20 0 60 80 80 80 Tôi 100 120 120 120 60 40 60 60 0 20 20 20 J 120 140 140 140 80 60 80 80 20 0 20 20 K 120 140 140 140 80 60 80 80 20 20 0 20 L 120 140 140 140 80 60 80 80 20 20 20 0
Có phương pháp nào để trích xuất các cụm từ M
(nếu cần, số lượng cụm có thể được cố định), sao cho mỗi cụm chứa các nút có khoảng cách nhỏ giữa chúng. Trong ví dụ này, các cụm sẽ là (A, B, C, D)
, (E, F, G, H)
và (I, J, K, L)
.
Tôi đã thử UPGMA và k
-means nhưng các cụm kết quả rất tệ.
Khoảng cách là các bước trung bình mà một người đi bộ ngẫu nhiên sẽ thực hiện để đi từ nút này A
sang nút B
( != A
) và quay lại nút A
. Nó được đảm bảo rằng đó M^1/2
là một số liệu. Để chạy k
-means, tôi không sử dụng centroid. Tôi xác định khoảng cách giữa n
cụm nút c
là khoảng cách trung bình giữa n
và tất cả các nút trong c
.
Cảm ơn rất nhiều :)