#hierarchical-clustering — التعلّم غير المُشرَف
ادمج النقاط اثنتَين اثنتَين حتّى لا يبقى إلّا واحدة: المخطّط الشجريّ، ومعايير الوصلة، وارتفاع القطع الذي يحدّد عدد العناقيد.
ما ستُجرّبه
- مرحبًا بك في #hierarchical-clustering. على اليسار، 30 نقطة رمادية على مستوى: يمكنك تخمين ثلاث كتل، لكنّ الآلة لا تعلم ذلك بعد — كلّ نقطة هي عنقود بذاتها. على اليمين، مخطّط شجريّ فارغ: 30 ورقة في صفّ واحد، ومحور ارتفاع، وفي الأعلى مستوى قطع أصفر. الفكرة تسع في جملة واحدة: ادمج أقرب عنقودَين، مرارًا وتكرارًا، حتّى لا يبقى إلّا واحد. يرسم كلّ دمج «U» ارتفاعه هو المسافة التي حدث عندها.
- ابدأ أوّل دمج:
/merge. تمسح الخوارزمية مصفوفة المسافات بحثًا عن أقرب زوج، ثمّ تلحمهما. - دمج آخر:
/merge. قارِن ارتفاع U الجديد بالأوّل. - دعه يعمل حتّى النهاية:
/run. تتسلسل عمليات الدمج الـ29، من الأزواج إلى المجموعات، وصولًا إلى جذر واحد. - المستوى الأصفر فوق كلّ شيء: عنقود واحد. أنزله:
/cut 1.5، ثمّ عُدَّ الفروع التي يقطعها. - عند 1.5 نجحت، لكن هذا بعض الحظّ. اعكس المسار: اطلب مباشرةً ثلاث مجموعات بـ
/clusters 3. يستقرّ المستوى في منتصف أكبر فجوة بين اندماجَين. - أرض جديدة:
/dataset chain. صفّ من النقاط بفواصل منتظمة، ومجموعة صغيرة مضغوطة بجواره. لاحظ كيف تقطع الوصلة المتوسّطة هذا عند ارتفاع القطع الحالي. - انتقل إلى الوصلة الفردية:
/linkage single. تصبح المسافة بين مجموعتَين هي المسافة بين أقرب نقطتين لهما. - دورك:
/linkage wardثمّ/clusters 2على الصفّ؛/dataset ringsثمّ/linkage singleو/clusters 2(تُستعاد الحلقتان) مقابل/linkage complete(فشل)؛/n 60للتكثيف؛/seed 12لنقاط أخرى؛/undoللتراجع عن دمج؛/resetللبدء من جديد. التالي: #dbscan، الذي يجد المجموعات بالكثافة دون تحديد عددها، و#k-means، المنافس الذي يجب أن يعرف k مسبقًا.
أوامر القناة
/merge— تنفيذ الدمج التالي: يلتحم أقرب عنقودَين./run— تشغيل كلّ عمليات الدمج المتبقّية: الشجرة كاملةً، حتّى الجذر./undo— التراجع عن آخر دمج ظاهر./linkage <single|complete|average|ward>— تغيير معيار الوصلة وإعادة حساب الشجرة كلّها (بالعدد ذاته من عمليات الدمج الظاهرة)./cut <height=0..4>— وضع مستوى القطع على هذا الارتفاع: عدد العناقيد = عدد الفروع المقطوعة./clusters <m=1..10>— اختيار عدد العناقيد: يهبط المستوى إلى منتصف فجوة الارتفاعات المناسبة./dataset <blobs|chain|rings>— تغيير مجموعة البيانات (بنفس n وبنفس البذرة) وإعادة حساب الشجرة./n <10..60>— تغيير عدد النقاط وإعادة حساب الشجرة./seed <1..99>— سحب النقاط ببذرة أخرى (بنفس مجموعة البيانات ونفس n)./reset— العودة إلى البداية: blobs، 30 نقطة، وصلة متوسّطة، بلا دمج، ومستوى القطع في الأعلى.
المسرد
- التجميع الهرمي التجميعي (Agglomerative HC)
- طريقة تجميع غير مراقَبة تبدأ بـn عناقيد من نقطة واحدة، ثمّ تدمج عند كلّ خطوة أقرب عنقودَين، حتّى لا يبقى إلّا واحد. تحصل على تسلسل هرمي كامل من التقسيمات بدل تقسيم واحد.
- المخطّط الشجريّ (dendrogram)
- شجرة تُلخّص كلّ عمليات الدمج: الأوراق هي النقاط، وكلّ «U» يربط عنقودَين على ارتفاع دمجهما. يُنتج قطعه عند ارتفاع معيّن تقسيمًا إلى عناقيد.
- معيار الوصلة (linkage)
- قاعدة تحدّد المسافة بين عنقودَين انطلاقًا من مسافات النقاط: فردية، كاملة، متوسّطة، وارد… وهي تقرّر ترتيب عمليات الدمج ومن ثمّ شكل الشجرة.
- الوصلة الفردية (single linkage)
- المسافة بين عنقودَين = المسافة بين نقطتيهما الأقرب. تتّبع الأشكال الممدودة والحلقات، لكنّها تُعاني من أثر التسلسل.
- الوصلة الكاملة (complete linkage)
- المسافة بين عنقودَين = المسافة بين نقطتيهما الأبعد، أي قطر العنقود المدمَج. تُنتج عناقيد مضغوطة ومستديرة، لكنّها تقطع الأشكال الممدودة.
- الوصلة المتوسّطة (average linkage)
- متوسّط كلّ مسافات النقاط بين المجموعتَين. حلٌّ وسط بين الفردية والكاملة، ومقاوم للنقاط الشاذّة.
- طريقة وارد (Ward)
- معيار يدمج العنقودَين اللذَين يُنتج اتّحادُهما أقلّ زيادة في القصور الذاتي الداخلي (مجموع مربّعات المسافات إلى المراكز). يفضّل عناقيد مضغوطة بأحجام متقاربة؛ وهو المعيار الافتراضي لـ scikit-learn.
- ارتفاع القطع (cut height)
- عتبة المسافة التي عندها تشقّ المخطّط الشجريّ: تصبح الفروع المقطوعة هي العناقيد. القطع في منتصف أكبر فجوة ارتفاع يعطي أمتن التقسيمات؛ ويمكن أيضًا استهداف عدد محدّد من العناقيد مباشرةً.
- أثر التسلسل (chaining effect)
- المطبّ الذي تقع فيه الوصلة الفردية: صفّ من النقاط المتقاربة يعمل كجسر، فيدمج خطوةً خطوة مجموعات لا علاقة لبعضها ببعض. يتسطّح المخطّط في الأسفل ولا تبقى فجوة نظيفة للقطع خلالها.
- مصفوفة المسافات
- جدول n × n يحتوي المسافات بين كلّ زوج من النقاط، وهي منطلق الخوارزمية. بعد كلّ دمج، يُحسب سطر العنقود الجديد من السطور القديمة عبر صيغة لانس-وليامز.
قنوات أخرى في التعلّم غير المُشرَف
- #k-means — التجميع بلا تسميات: مراكز تتحرّك، قصور ذاتي يهبط، اختيار k — والأشكال التي يفشل عليها k-means.
- #pca — تحليل المكوّنات الرئيسية: أوجِد المحاور التي تتغيّر عليها البيانات أكثر ما يكون، أسقِط، اضغط — وقِس ما فُقد.
- #hierarchical-clustering — ادمج النقاط اثنتَين اثنتَين حتّى لا يبقى إلّا واحدة: المخطّط الشجريّ، ومعايير الوصلة، وارتفاع القطع الذي يحدّد عدد العناقي د.
- #dbscan — التجميع بحسب الكثافة: إبسيلون، MinPts، نقاط النواة والحافّة والضوضاء — الخوارزميّة التي تجد الأشكال الاعتباطيّة وتتجاهل المتطفّلين.
- #anomaly-detection — اكتشِف ما لا يُطابق شيئًا: z-score / ماهالانوبيس، Isolation Forest، LOF — ثلاث طرق لقول «هذه النقطة غريبة».
- #t-sne-umap — ارسم خريطة الأبعاد العالية: t-SNE وUMAP يفتحان بيانات ذات 10 أبعاد إلى خريطة قابلة للقراءة في بُعدَين — الحيرة، الجيران، ومغالطات القراءة.