ML 101
M05 · L01
الوحدة 5

الـ clustering — K-Means

مفيش labels. مفيش مدرّس. بس البيانات والبنية. الـ unsupervised learning (التعلم غير الخاضع للإشراف) بيكشف تجمّعات مستخبية — والـ K-Means هو الـ algorithm اللي فتح الباب لألف تقسيمة.

01 / 13
ML 101
M05 · L01
المهمة

الـ clustering من غير labels

الـ clustering (التجميع) بيقسم البيانات لمجموعات بحيث التشابه جوه المجموعة يبقى عالي والتشابه بين المجموعات يبقى واطي. مش محتاج ground truth — البنية بتطلع من البيانات نفسها.

الـ input
n نقطة
الـ output
K مجموعات
02 / 13
ML 101
M05 · L01
اللفّة اللي بتتكرّر

assign ← update ← وعيد

  • الـ initialization — حط K نقط مرجعية (عشوائي أو بـ K-Means++)
  • الـ assignment — كل نقطة بتنضم لأقرب نقطة مرجعية (centroid)
  • الـ update — احسب كل نقطة مرجعية من جديد كمتوسط المجموعة
  • الفحص — وقّف لو الـ assignments متغيّرتش
  • التقارب مضمون؛ بيتقارب لـ local minimum
03 / 13
ML 101
M05 · L01
الهدف

تقليل الـ inertia

الـ K-Means بيقلّل مجموع مربعات المسافات جوه كل مجموعة من كل نقطة للنقطة المرجعية بتاعتها. inertia (قصور ذاتي) أقل = مجموعات أشد ومتماسكة أكتر.

الـ objective بتاع K-Means
J = \displaystyle\sum_{k=1}^{K} \sum_{\mathbf{x} \in C_k} \|\mathbf{x} - \boldsymbol{\mu}_k\|^2
04 / 13
ML 101
M05 · L01
الـ hyperparameter

اختيار K

  • الـ elbow method (طريقة الكوع) — ارسم الـ inertia قصاد K؛ ودوّر على نقطة اللفّة
  • الـ silhouette score — بيقيس التماسك قصاد الفصل لكل نقطة
  • المدى من −1 (مجموعة غلط) لـ +1 (مثالي)؛ كبّرها على K
  • معرفة المجال غالبًا أوثق
  • ولا مقياس فيهم حاسم — اتعامل معاهم كإرشادات
05 / 13
ML 101
M05 · L01
مقياس الجودة

الـ silhouette score

a(i) = متوسط المسافة لنقط نفس المجموعة. b(i) = متوسط المسافة لأقرب مجموعة تانية. s(i) قريبة من +1 معناها تجميع كويس؛ وقريبة من 0 معناها على الحدود.

معادلة الـ silhouette
s(i) = \dfrac{b(i) - a(i)}{\max(a(i),\,b(i))}
06 / 13
ML 101
M05 · L01
بداية أذكى

الـ K-Means++

الـ initialization العشوائية بتخاطر بـ local minima وحشة. والـ K-Means++ بيزرع النقط المرجعية بإنه يختار كل نقطة جديدة باحتمال متناسب مع مربع مسافتها من أقرب نقطة مرجعية موجودة — بيفرّشها بذكاء.

الضمان
تقريب O(log K) للقيمة المثلى • دلوقتي الإعداد الافتراضي في scikit-learn
07 / 13
ML 101
M05 · L01
القيود

الـ K-Means بيفشل إمتى

  • افتراض الشكل الكروي — مبيلاقيش مجموعات منحنية أو ممطوطة
  • الأحجام المتساوية — المجموعات الكبيرة بتتقسم والصغيرة بتندمج
  • الحساسية للـ outliers — نقطة متطرفة واحدة بتشد النقطة المرجعية بعيد
  • K مطلوبة من الأول — لازم تخمّن أو تدوّر
  • إقليدي بس — مش مناسب للبيانات الفئوية أو النصية
08 / 13
ML 101
M05 · L01
على نطاق واسع

الـ mini-batch K-Means

الـ K-Means العادي بيحمّل كل البيانات في كل iteration. أما الـ mini-batch K-Means فبيحدّث النقط المرجعية على subsample عشوائية في كل خطوة — زي SGD بس للـ clustering. أسرع بكتير على ملايين النقط.

السرعة
أسرع بكتير
الجودة
inertia أعلى شوية
09 / 13
ML 101
M05 · L01
ملحوظة عملية

الـ scaling قبل الـ clustering

الـ K-Means بيستخدم المسافة الإقليدية. feature قيمها كبيرة بتسيطر على كل حسابات المسافة. اعمل scaling دايمًا لمتوسط صفر وvariance واحد قبل ما تشغّل K-Means.

قاعدة إرشادية
StandardScaler قبل KMeans • أشهر مصدر لـ clustering ضعيف
10 / 13
ML 101
M05 · L01
الدنيا الحقيقية

الـ K-Means بيلمع فين

  • تقسيم العملاء — تجميع المستخدمين حسب تصرّفاتهم
  • ضغط الصور — تقليل الألوان لـ K قيمة ممثّلة
  • تجميع المستندات — اكتشاف المواضيع في مجموعات نصوص كبيرة
  • الـ anomaly detection — النقط البعيدة عن أي نقطة مرجعية هي outliers
  • الـ feature engineering — الانتماء للمجموعة كـ feature جديدة
11 / 13
ML 101
اختبار سريع

شوف إيه اللي ثبت

أربع أسئلة من الدرس ده. جاوب عشان تشوف السبب — الشرح بيظهر سواء جاوبت صح أو غلط. ونتيجتك مش بتتحفظ.

السؤال 1 من 0
النتيجة 0/0

12 / 13
ML 101
الخلاصة
مراجعة

اتعلّمت إيه

الـ K-Means بيكرّر assign←update عشان يقلّل الـ inertia. والـ K-Means++ بيزرع بذكاء. والـ elbow والـ silhouette بيساعدوا تختار K. والـ mini-batch بيكبر للملايين. الجاي: الـ hierarchical clustering وDBSCAN — clustering من غير K متحدّد من الأول.

13 / 13