خوشهبندی K-Means
آموزش الگوریتم K-Means: مراکز خوشه، مراحل تکرارشونده، انتخاب K با روش Elbow
K-Means چیست؟
محبوبترین الگوریتم خوشهبندی: داده را به K خوشه تقسیم میکند طوری که هر نمونه به نزدیکترین مرکز تعلق دارد.
الگوریتم گامبهگام
- K نقطه بهعنوان مرکز خوشه انتخاب میشوند (تصادفی)
- انتساب: هر نمونه به نزدیکترین مرکز میرود
- بهروزرسانی: هر مرکز به میانگین اعضای خوشهاش منتقل میشود
- مراحل ۲ و ۳ تا ثابتشدن تکرار میشوند
پیادهسازی
from sklearn.cluster import KMeans
model = KMeans(n_clusters=3, random_state=42, n_init=10)
labels = model.fit_predict(X) # خوشه هر نمونه
print(model.cluster_centers_) # مراکز خوشهها
print(model.inertia_) # مجموع مربعات فاصلهها (کمتر = خوشه فشردهتر)
انتخاب K: روش Elbow
چند خوشه؟ K را از ۱ تا ۱۰ امتحان کنید و inertia_ را رسم کنید. جایی که نمودار مثل «آرنج» خم میشود، K مناسب است:
inertias = []
for k in range(1, 11):
km = KMeans(n_clusters=k, n_init=10).fit(X)
inertias.append(km.inertia_)
plt.plot(range(1, 11), inertias, marker="o")
نکات مهم
- مقیاسبندی: KMeans با فاصله کار میکند؛ حتماً مقیاسبندی کنید
- شروع تصادفی: ممکن است در بهینه محلی گیر کند؛
n_init=10چند بار اجرا میکند - شکل خوشه: KMeans خوشههای گرد فرض میکند؛ برای شکلهای عجیب DBSCAN بهتر است
ارزیابی خوشهبندی
چون برچسب نداریم، معیارهای داخلی داریم:
- Inertia: فشردگی خوشهها (کمتر بهتر)
- Silhouette Score: از ۱- تا ۱؛ بالاتر = خوشههای جدا و فشرده
بعد از خوشهبندی، مراکز خوشهها را تحلیل کنید تا هر خوشه را «نامگذاری» کنید: خوشه ۱ = جوان پرخرج، خوشه ۲ = مسن صرفهجو و...
جمعبندی
- KMeans = انتساب + بهروزرسانی مراکز تا همگرایی
- K را با روش Elbow یا Silhouette انتخاب کنید
- مقیاسبندی یادتان نرود!
این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.