Linkage
- Makine Öğrenmesi kursu
- Orta seviye
- Ders 62/112
- 5 dk
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
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
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.
ag = AgglomerativeClustering(n_clusters=3, linkage=____)
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ışı |