بازگشت به دوره

آموزش رایگان صفر تا صد یادگیری ماشین (Machine Learning) به زبان ساده

0% تکمیل‌شده
0/0 مرحله

یکی از پرکاربردترین الگوریتم‌های یادگیری ماشین برای خوشه‌بندی داده‌ها K-Means است. در این مقاله، به‌صورت ساده و مرحله‌به‌مرحله، نحوه کار با این الگوریتم را همراه با مثال‌های عملی بررسی می‌کنیم.


📌 فهرست مطالب

  1. K-Means چیست؟
  2. الگوریتم K-Means چگونه کار می‌کند؟
  3. روش Elbow برای تعیین مقدار K
  4. پیاده‌سازی عملی K-Means در پایتون

در یادگیری ماشین K-Means چیست؟

K-Means یک روش یادگیری ماشین بدون نظارت (Unsupervised Learning) است که برای گروه‌بندی داده‌ها (Clustering) استفاده می‌شود. این الگوریتم تلاش می‌کند داده‌های مشابه را در یک گروه قرار دهد و بین آن‌ها خوشه‌های (Clusters) جداگانه ایجاد کند.

کاربردهای K-Means:

  • تقسیم‌بندی مشتریان در بازاریابی 🎯
  • تحلیل داده‌های زیستی 🧬
  • تشخیص الگوها در تصاویر 🖼️

🔹 الگوریتم K-Means چگونه کار می‌کند؟

این الگوریتم در چند مرحله ساده انجام می‌شود:

1️⃣ انتخاب تعداد خوشه‌ها (K): ابتدا تعداد خوشه‌های مورد نظر مشخص می‌شود.
2️⃣ اختصاص اولیه: هر داده به‌صورت تصادفی به یکی از K خوشه اختصاص داده می‌شود.
3️⃣ محاسبه مرکز خوشه (Centroid): میانگین مختصات نقاط موجود در هر خوشه محاسبه و به‌عنوان مرکز خوشه در نظر گرفته می‌شود.
4️⃣ انتساب مجدد داده‌ها: هر نقطه به خوشه‌ای که نزدیک‌ترین مرکز را دارد، منتقل می‌شود.
5️⃣ تکرار مراحل: این روند ادامه می‌یابد تا زمانی که دیگر تغییری در خوشه‌ها رخ ندهد.

🔹 تصویر ذهنی:
✅ فرض کنید تعدادی نقطه روی یک صفحه داریم که قرار است آن‌ها را بر اساس موقعیت‌شان در گروه‌های مختلف قرار دهیم. این کار همان چیزی است که K-Means انجام می‌دهد!

🔹 روش Elbow برای تعیین مقدار K

مشکل اصلی در K-Means: چطور تعداد خوشه‌های مناسب (K) را پیدا کنیم؟ 🤔

📌 روش Elbow یک تکنیک محبوب برای انتخاب مقدار K است. این روش، مقدار Inertia (میزان پراکندگی داده‌ها داخل هر خوشه) را برای مقادیر مختلف K محاسبه کرده و روی نمودار رسم می‌کند.

مراحل روش Elbow:

  1. مقدار Inertia برای هر مقدار K (مثلاً از 1 تا 10) محاسبه می‌شود.
  2. نموداری از مقدار Inertia بر حسب K رسم می‌شود.
  3. جایی که کاهش Inertia به‌صورت ناگهانی کم شده و به یک خط تقریباً مستقیم تبدیل می‌شود، نقطه Elbow یا آرنج است.

🔹 نتیجه: مقدار K در نقطه Elbow مقدار بهینه برای خوشه‌بندی داده‌هاست.

🔹 پیاده‌سازی عملی K-Means در پایتون

حالا که با اصول K-Means آشنا شدیم، بیایید آن را در پایتون پیاده‌سازی کنیم.

1️⃣ نمایش داده‌ها به‌صورت نقطه‌ای (Scatter Plot)

ابتدا تعدادی نقطه روی نمودار رسم می‌کنیم:

import matplotlib.pyplot as plt

# داده‌های نمونه
x = [4, 5, 10, 4, 3, 11, 14 , 6, 10, 12]
y = [21, 19, 24, 17, 16, 25, 24, 22, 21, 21]

# رسم نقاط روی نمودار
plt.scatter(x, y)
plt.show()

🔹 خروجی: نقاط داده روی صفحه رسم می‌شوند که می‌توانیم خوشه‌بندی را روی آن‌ها اعمال کنیم.


2️⃣ استفاده از روش Elbow برای پیدا کردن مقدار K

در این مرحله، روش Elbow را برای یافتن تعداد بهینه خوشه‌ها اجرا می‌کنیم.

from sklearn.cluster import KMeans

data = list(zip(x, y))  # تبدیل داده‌ها به نقاط قابل پردازش
inertias = []

# بررسی مقدار Inertia برای مقادیر مختلف K
for i in range(1, 11):
    kmeans = KMeans(n_clusters=i)
    kmeans.fit(data)
    inertias.append(kmeans.inertia_)

# رسم نمودار Elbow
plt.plot(range(1, 11), inertias, marker='o')
plt.title('Elbow Method')
plt.xlabel('Number of Clusters')
plt.ylabel('Inertia')
plt.show()

🔹 نتیجه: نقطه Elbow نشان می‌دهد که مقدار بهینه K احتمالاً 2 است.


3️⃣ اجرای الگوریتم K-Means و نمایش نتایج

حالا که مقدار K = 2 را تعیین کردیم، الگوریتم K-Means را اجرا می‌کنیم:

kmeans = KMeans(n_clusters=2)
kmeans.fit(data)

# نمایش نتایج خوشه‌بندی
plt.scatter(x, y, c=kmeans.labels_)
plt.show()

🔹 جمع‌بندی و نتیجه‌گیری

✅ در این مقاله، یاد گرفتیم که K-Means یکی از ساده‌ترین و موثرترین الگوریتم‌های خوشه‌بندی است.
✅ با استفاده از روش Elbow می‌توانیم مقدار K بهینه را پیدا کنیم.
✅ در نهایت، با پیاده‌سازی K-Means در پایتون، خوشه‌بندی را روی داده‌ها اجرا کردیم.