خوشهبندی سلسلهمراتبی
آموزش خوشهبندی سلسلهمراتبی: Agglomerative، Dendrogram و معیارهای پیوند
خوشهبندی سلسلهمراتبی چیست؟
برخلاف KMeans که K را از قبل میخواهد، این روش ساختار درختی خوشهها را میسازد و شما بعداً هر سطحی که خواستید برش میزنید.
دو رویکرد
- Agglomerative (پایین به بالا): هر نمونه یک خوشه است؛ خوشههای نزدیک ادغام میشوند تا یکی بماند — رایجتر
- Divisive (بالا به پایین): همه یک خوشهاند؛ بهتدریج تقسیم میشوند
مراحل Agglomerative
- هر نقطه = یک خوشه
- دو نزدیکترین خوشه را پیدا و ادغام کن
- تکرار تا یک خوشه بماند
معیار فاصله بین خوشهها (Linkage)
| پیوند | تعریف | ویژگی |
|---|---|---|
| ward | کمینهسازی واریانس | خوشههای هماندازه (پیشنهادی) |
| complete | دورترین اعضا | خوشههای فشرده |
| average | میانگین همه جفتها | متعادل |
| single | نزدیکترین اعضا | زنجیرهای (مشکلدار) |
Dendrogram (نمودار درختی)
نتیجه خوشهبندی سلسلهمراتبی یک درخت است که ارتفاع هر ادغام = فاصله خوشهها. با رسم خط افقی، تعداد خوشهها را انتخاب میکنید:
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt
Z = linkage(X, method="ward")
dendrogram(Z)
plt.show()
پیادهسازی
from sklearn.cluster import AgglomerativeClustering
model = AgglomerativeClustering(n_clusters=3, linkage="ward")
labels = model.fit_predict(X)
KMeans یا سلسلهمراتبی؟
| معیار | KMeans | سلسلهمراتبی |
|---|---|---|
| سرعت روی داده بزرگ | سریع ✅ | کند O(n²) |
| نیاز به K از قبل | بله | نه (بعداً برش) ✅ |
| شکل خوشه | گرد | انعطافپذیرتر ✅ |
| تفسیر ساختار | ساده | Dendrogram عالی ✅ |
جمعبندی
- سلسلهمراتبی، درخت ادغام خوشهها را میسازد
- Dendrogram برای انتخاب تعداد خوشه فوقالعاده است
- برای داده بزرگ KMeans سریعتر است
این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.