Anda berada di sini karena, Anda mengetahui sesuatu tentang pengelompokan Hierarki dan ingin mengetahui cara kerja pengelompokan Tautan Tunggal dan cara menggambar Dendrogram.
Pengelompokan Hierarki : Lambat :: rumit :: dapat diulang :: tidak cocok untuk kumpulan data besar.
Mari kita ambil 6 Vektor sederhana.
Menggunakan Jarak Euclidean memungkinkan menghitung Matriks Jarak. Euclidean Distance = sqrt( (x2 -x1)**2 + (y2-y1)**2 )
Contoh : Jarak antara A dan B
sqrt ( (18- 22) ** 2 + (0–0) ** 2))
sqrt( (16) + 0)
sqrt( 16)= 4
Pengelompokan Tautan Tunggal: Minimal dua jarak. Menghasilkan cluster yang lebih besar dan lebih beragam.
Matriks Jarak: Diagonalnya akan menjadi 0 dan nilainya akan simetris.
Langkah a: Jarak terpendek dalam matriks adalah 1 dan vektor yang terkait dengannya adalah C & D
Jadi cluster pertama adalah C — D
Jarak antara vektor lain dan CD
A ke CD = min(A-›C, A-›D) = min(25,24) = 24
B ke CD = min(B-‹C, B-›D) = min(21, 20) = 20
dan juga menemukan E & F
Langkah b : Sekarang 2 adalah jarak terpendek dan vektor yang terkait dengannya adalah E & F
Cluster kedua adalah E — F
A ke EF = min(A-›E, A-›F) = min(9,7) = 7
CD ke EF = min(CD-›E, CD-›F) = min(15, 17) = 15
Langkah c : Yang terpendek berikutnya adalah 3, dan vektor terkaitnya adalah B & EF
Cluster ketiga adalah B — EF
A ke BEF = min(A-›B, A-›EF) = min(4,7) = 4
CD ke BEF = min(CD-›B, CD-›EF) = min(20, 15) = 15
Langkah d : Yang terpendek berikutnya adalah 4, dan vektor terkaitnya adalah A& BEF
Cluster keempat adalah A — BEF
CD ke ABEF = menit(CD-›A, CD-›BEF) = menit(24,15) = 15
Langkah e : Cluster terakhir adalah CD — ABEF
Mari kita lihat Dendrogram untuk cluster link tunggal.
Skrip Python 3 sederhana untuk mencapai hal yang sama.
import numpy as np from scipy.cluster.hierarchy import dendrogram, linkage from scipy.spatial.distance import squareform import matplotlib.pyplot as plt #skipping the distance calculation part and directly using the Distance Matrix mat = np.array([[0,4,25,24,9,7], [4,0,21,20,5,3], [25,21,0,1,16,18], [24,20,1,0,15,17], [9,5,16,15,0,2], [7,3,18,17,2,0] ]) dists = squareform(mat) #This step is where we mention its "Single Link" Cluster linkage_matrix = linkage(dists, "single") dendrogram(linkage_matrix, labels=["A","B","C","D","E","F"]) plt.title("Single Link") plt.show()