CodeBlanks Logo Icon CodeBlanks

Özet - Hiyerarşik kümeleme

Bu grupta hiyerarşik kümeleme ve dendrogram'ı öğrendin.

Özet: hiyerarşik kümeleme

Bu grupta:

  • Birleştirici kümeleme her örnekle başlar, en yakın kümeleri birleştirir; sonuç bir ağaçtır.
  • linkage matrisi ve dendrogram; büyük mesafe sıçraması iyi kesim noktasıdır.
  • fcluster (maxclust/distance) ve AgglomerativeClustering (n_clusters/distance_threshold).
  • Bağlantı türleri: single (zincir), complete, average, ward (varsayılan).
  • Deterministiktir; büyük veride yavaştır; yeni örnekler için etiketlerle sınıflandırıcı eğitilir.

Uygulama Dendrogram ve kesim

Küçük veride Ward bağlantısını hesapla ve dendrogramı çizip kaydet. Ardışık birleşme mesafeleri arasındaki en büyük sıçramanın ortasından ((Z[i, 2] + Z[i + 1, 2]) / 2, i = np.diff(Z[:, 2]).argmax()) kesip fcluster(..., criterion="distance") ile etiketleri yazdır.

Başlangıç kodu

model.py
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]])
from scipy.cluster.hierarchy import dendrogram
import matplotlib.pyplot as plt

# buraya yaz

Örnek çözüm

model.py
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]])
from scipy.cluster.hierarchy import dendrogram
import matplotlib.pyplot as plt

Z = linkage(X, method="ward")
fig, ax = plt.subplots()
dendrogram(Z, ax=ax)
fig.savefig("agac.png")
i = np.diff(Z[:, 2]).argmax()
esik = (Z[i, 2] + Z[i + 1, 2]) / 2
print(fcluster(Z, t=esik, criterion="distance"))

Beklenen çıktı

[2 2 2 3 3 3 1 1]

Soru ve cevaplar

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

1 Hangi bağlantı KMeans'e en benzer kümeler üretir?

  • single
  • average
  • complete
  • ward Doğru cevap

Açıklama: Ward, KMeans gibi küme içi kare mesafeyi en az artıran birleşmeyi seçer.

2 Dendrogramı çiz.

Soru
____(Z, ax=ax)
Cevap
dendrogram(Z, ax=ax)

Açıklama: dendrogram, scipy.cluster.hierarchy içinde, matplotlib ile çizer.

3 Araçları eşleştir.

Kavram Anlamı
linkage Birleşme matrisi
dendrogram Ağaç çizimi
fcluster Ağacı kesme
AgglomerativeClustering scikit-learn sürümü

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