انتقل إلى المحتوى الرئيسي

الوحدة 3 — اختيار عدد المجموعات: الكوع ودرجة الظلّ

تتطلّب k-means عدداً kk لا يعرفه أحد. تُقدّم هذه الوحدة الأداتين اللتين تتيحان اختياره على نحوٍ قابل للدفاع عنه — وقبل ذلك، طريقة قراءتهما بلا حكاياتٍ نرويها لأنفسنا. إنّه أكثر أسئلة التجميع طرحاً، وأكثرها وقوعاً في الخطأ.

لماذا لا يستطيع القصور الذاتي وحده أن يُجيب

تذكيرٌ بالوحدة 2: يتناقص القصور الذاتي دوماً كلّما زاد kk. ومع مجموعاتٍ بعدد النقاط يبلغ الصفر. فتصغير القصور سيؤدّي آلياً إلى مجموعةٍ لكلّ ملاحظة — نتيجةٌ مثالية وعديمة الجدوى تماماً.

ومع ذلك لا يُطرَح القصور جانباً: فالمعلومة تكمن في سرعة تناقصه. وهذه هي فكرة طريقة الكوع.

طريقة الكوع: قراءة تباطؤ

نرسم القصور بدلالة kk ونبحث عن النقطة التي يكفّ فيها المنحنى عن الهبوط ليستوي — «الكوع». والتفسير بديهي: حتى تلك النقطة تكشف كلّ مجموعةٍ إضافية بنيةً حقيقية وتُهبِط القصور؛ وبعدها لا نفعل إلّا تقطيع مجموعاتٍ متجانسة أصلاً، لمكسبٍ هامشي.

inerties = []
for k in range(2, 11):
inerties.append(KMeans(n_clusters=k, n_init=10, random_state=42).fit(X_s).inertia_)

وعيب الطريقة هو نزاهتها: فالكوع غالباً مُلتبِس. فعلى بياناتٍ واقعية ينحني المنحنى بلطفٍ ويرى فيه شخصان 3 مجموعاتٍ و5. تُحدّد طريقة الكوع مجالاً معقولاً؛ ولا تحسم. ومن هنا الأداة التالية، الأكثر تطلّباً.

درجة الظلّ: التراصّ والانفصال

تُقيّم درجة الظلّ، لكلّ نقطة، ما إذا كانت في المجموعة الصحيحة، بمقارنة مسافتين متوسّطتين: المسافة إلى مجموعتها (aa) والمسافة إلى أقرب مجموعةٍ مجاورة (bb).

s=bamax(a,b)[1,1]s = \frac{b - a}{\max(a, b)} \in [-1, 1]

والقراءة مباشرة، وهذا ما يمنح المؤشّر قيمته:

القيمةالتفسير
قريبة من 1النقطة في موضعها، والمجموعات منفصلة جيّداً
قريبة من 0النقطة على الحدّ بين مجموعتين
سالبةالنقطة مُسنَدة خطأً على الأرجح

وبالمتوسّط على كلّ النقاط نحصل على درجةٍ كلّية قابلة للمقارنة بين عدّة kk — وهذه المرّة يمكن الاحتفاظ بالأقصى.

from sklearn.metrics import silhouette_score, silhouette_samples
silhouette_score(X_s, km.labels_) # درجة كلّية، قابلة للمقارنة بين k
silhouette_samples(X_s, km.labels_) # درجة لكلّ نقطة: أكثر إفادةً بكثير

والنداء الثاني يستحقّ الالتفات. فدرجةٌ كلّية 0.55 قد تُخفي ثلاث مجموعاتٍ بالغة الوضوح ورابعةً غير متّسقة، نقاطها قريبة من الصفر أو دونه. وفحص التوزيع لكلّ مجموعة يكشف بالضبط أين يصمد التقسيم وأين يتشقّق، وهو ما يُخفيه المتوسّط.

الترجيح: المعايير لا تحسم وحدها

يُحدّد الكوع ودرجة الظلّ فضاءً من الحلول المعقولة؛ والاختيار النهائي يُدرِج اعتبارين تتجاهلهما الهندسة:

  • الاستقرار (الوحدة 1): أعِد التشغيل ببذورٍ عشوائية أخرى، أو على 90% من البيانات مسحوبةً عشوائياً. فإن أُعيد تشكيل المجموعات في العمق، فذلك kk غير موثوق أيّاً كانت درجته؛
  • النفع في العمل: 4 شرائح قابلة للتفسير والتفعيل أفضل من 7 شرائح بأفضل درجة لا يعرف أحدٌ ما يفعله بها. فتجميعٌ لا يمكن تسميته لن يُستعمَل.
حين لا يصلح أيّ k

درجةُ ظلٍّ تتوقّف عند حدٍّ منخفض (لنقل أقلّ من 0.25) لكلّ kk ليست فشلاً في الضبط: بل هي نتيجة. تقول إنّه لا توجد على الأرجح مجموعاتٌ كروية واضحة في هذه البيانات. وثلاثة مسارات ممكنة، بهذا الترتيب: مراجعة المتغيّرات والمقياس (فقد تكون الإشارة مغمورة)، أو تجربة طريقةٍ لا تفترض كرات (DBSCAN في الوحدة 5، والمزيج الغوسي في الوحدة 9)، أو تقبّل أنّ البنية متّصلة لا مُجمَّعة — وحينها يكون تقليص الأبعاد في الوحدة 6 هو الأداة الصحيحة.

الخلاصة

  • يتناقص القصور دوماً مع kk: وما نقرأه هو تباطؤه، عبر طريقة الكوع، التي تُحدّد مجالاً بلا حسم.
  • تقارن درجة الظلّ التراصّ بالانفصال في [1,1][-1, 1] وتُقارَن بين عدّة kk؛ والأقصى مرشّحٌ جدّي.
  • تكشف الدرجة لكلّ نقطة المجموعاتَ الهشّة التي يُخفيها المتوسّط الكلّي.
  • يُدرِج الاختيار النهائي الاستقرار والنفع في العمل؛ ودرجةٌ منخفضة لكلّ kk معلومةٌ لا فشل.

الوحدة التالية: التجميع الهرمي، الذي يبني شجرةً من المجموعات بلا تثبيت kk سلفاً.