Hiyerarşik kümeleme nedir?
- Makine Öğrenmesi kursu
- Orta seviye
- Ders 59/112
- 5 dk
Hiyerarşik kümeleme, veriyi ağaç benzeri bir yapıda gruplara ayırır.
Hiyerarşik kümeleme nedir?
Hiyerarşik kümeleme tek bir bölümleme değil, iç içe kümelerden oluşan bir ağaç üretir. Birleştirici (agglomerative) yaklaşımda her örnek kendi kümesiyle başlar; her adımda en yakın iki küme birleşir, sonunda tek küme kalır.
from scipy.cluster.hierarchy import linkage
Z = linkage(X, method="ward")
print(Z.shape) # (n-1, 4): her satır bir birleşmeAğacı istenen seviyede "keserek" istenen sayıda küme elde edilir; KMeans'in aksine k'yı baştan vermek gerekmez.
Bağlantı matrisi Z
linkage çıktısının her satırı bir birleşmedir: [küme_a, küme_b, mesafe, yeni_kümedeki_örnek_sayısı]. n'den küçük numaralar özgün örneklerdir; n ve üstü önceki adımlarda oluşan kümelerdir.
print(Z[:3])
# [[0. 1. 1. 2.] örnek 0 ve 1, mesafe 1, 2 örnek
# ... ]Mesafeler satırdan satıra artar; büyük bir sıçrama, birbirinden uzak iki grubun birleştirildiğini gösterir ve iyi bir kesim noktasıdır.
Uygulama Bağlantıyı incele
linkage(X, method="single") ile bağlantı matrisini hesapla. Şeklini ve son birleşmenin mesafesini round(..., 2) ile alt alta yazdır. Ardından ardışık mesafe farklarının en büyüğünün hangi satırdan sonra olduğunu np.diff(Z[:, 2]).argmax() ile yazdır.
Başlangıç kodu
import numpy as np
from scipy.cluster.hierarchy import linkage, fcluster
X = np.array([[0, 0], [0, 1], [1, 0], [5, 5], [5, 6], [6, 5], [12, 0], [12, 1]])
# buraya yazÖrnek çözüm
import numpy as np
from scipy.cluster.hierarchy import linkage, fcluster
X = np.array([[0, 0], [0, 1], [1, 0], [5, 5], [5, 6], [6, 5], [12, 0], [12, 1]])
Z = linkage(X, method="single")
print(Z.shape)
print(round(Z[-1, 2], 2))
print(np.diff(Z[:, 2]).argmax())Beklenen çıktı
(7, 4) 7.21 4
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 8 örnekli bir veride birleştirici kümeleme kaç birleşme yapar?
- 7 Doğru cevap
- 8
- 4
- 28
Açıklama: Her birleşme küme sayısını bir azaltır: 8'den 1'e 7 adım.
2 Bağlantı matrisini Ward yöntemiyle hesapla.
Z = ____(X, method="ward")
Z = linkage(X, method="ward")
Açıklama: linkage, scipy.cluster.hierarchy içindedir.
3 Z sütunlarını eşleştir.
| Kavram | Anlamı |
|---|---|
Z[:, 0], Z[:, 1] |
Birleşen kümeler |
Z[:, 2] |
Birleşme mesafesi |
Z[:, 3] |
Örnek sayısı |
n-1 satır |
Toplam birleşme |