Özet - Hiyerarşik kümeleme
- Makine Öğrenmesi kursu
- Orta seviye
- Ders 64/112
- 6 dk
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.
linkagematrisi ve dendrogram; büyük mesafe sıçraması iyi kesim noktasıdır.fcluster(maxclust/distance) veAgglomerativeClustering(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
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
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.
____(Z, ax=ax)
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ü |