CodeBlanks Logo Icon CodeBlanks

Linkage

Linkage, kümeler arası mesafe hesaplama yöntemidir.

Bağlantı türleri

İki kümenin "yakınlığı" farklı biçimlerde tanımlanabilir:

  • single: en yakın iki üye arası mesafe; uzun zincirler oluşturur.
  • complete: en uzak iki üye arası; sıkı, benzer çaplı kümeler.
  • average: tüm üye çiftlerinin ortalaması; ikisinin arası.
  • ward: birleşmenin küme içi varyansı en az artırması; KMeans'e benzer yuvarlak kümeler (varsayılan).

Zincirleme etkisi

single bağlantının gücü aynı zamanda zayıflığıdır: iki kümeyi birbirine bağlayan tek bir gürültü noktası zinciri bile onları birleştirir. Ward ise gürültüye daha dayanıklıdır ama kıvrımlı şekilleri bölemez:

for l in ["single", "complete", "average", "ward"]:
    e = AgglomerativeClustering(n_clusters=2, linkage=l).fit_predict(Xm)
    print(l, adjusted_rand_score(ym, e))

Doğru bağlantı, verideki kümelerin beklenen şekline göre seçilir.

Uygulama Bağlantıları karşılaştır

Ay verisinde dört bağlantı türüyle AgglomerativeClustering(n_clusters=2, linkage=l) çalıştır. Her satırda bağlantı adını ve ARI'yi round(..., 3) ile yazdır.

Başlangıç kodu

model.py
from sklearn.datasets import make_moons
from sklearn.cluster import AgglomerativeClustering
from sklearn.metrics import adjusted_rand_score

X, y = make_moons(n_samples=200, noise=0.05, random_state=0)

# buraya yaz

Örnek çözüm

model.py
from sklearn.datasets import make_moons
from sklearn.cluster import AgglomerativeClustering
from sklearn.metrics import adjusted_rand_score

X, y = make_moons(n_samples=200, noise=0.05, random_state=0)

for l in ["single", "complete", "average", "ward"]:
    e = AgglomerativeClustering(n_clusters=2, linkage=l).fit_predict(X)
    print(l, round(adjusted_rand_score(y, e), 3))

Beklenen çıktı

single 1.0
complete 0.433
average 0.433
ward 0.433

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Ay biçimli iki küme için hangi bağlantı en iyi sonucu verir?

  • Hepsi aynı
  • single Doğru cevap
  • ward
  • complete

Açıklama: single, komşu noktalar zinciri boyunca birleşir ve kıvrımlı şekli izler.

2 En uzak üyelere göre birleştir.

Soru
ag = AgglomerativeClustering(n_clusters=3, linkage=____)
Cevap
ag = AgglomerativeClustering(n_clusters=3, linkage="complete")

Açıklama: complete bağlantı iki kümenin en uzak üyeleri arasındaki mesafeyi kullanır.

3 Bağlantıları eşleştir.

Kavram Anlamı
single En yakın üyeler, zincir
complete En uzak üyeler
average Tüm çiftlerin ortalaması
ward En az varyans artışı

Orta seviye bölümündeki tüm dersler