تقنية

Mean Shift: كيف يغير عرض النطاق موضع المرشح؟

مساران لموضع مرشح يبدأ عند عُشر وفق عرضين مختلفين
اتساع النافذة يدخل نقطة إضافية في المتوسط المحسوب.

في MeanShift الموثقة، تحرك النافذة المسطحة المرشح إلى متوسط النقاط داخل نطاقه، ثم تعالج المراكز المتقاربة لاستخراج المراكز النهائية. [1]

الخلاصة السريعة

عرض النطاق يغير النقاط الداخلة في تحديث المرشح. حركة مرشح واحد لا تخبرنا وحدها بعدد المجموعات النهائية أو بتسمية كل نقطة.

  • نستعمل نافذة مسطحة ومتوسطًا غير مرجح؛ البداية المفترضة 0.1 مرشح واحد، لا قائمة جميع المراكز النهائية.
  • للنقاط 0 و 0.2 و 0.4 و 1.2، يستقر المرشح عند 0.2 بنطاق 0.35، وعند 0.45 بنطاق 1.2 في الحساب اليدوي.
  • المتوسط المرشح ليس ملزمًا أن يكون نقطة أصلية؛ 0.45 غير موجودة في القائمة، وحساب مرشح واحد لا يعوض معالجة بقية البدايات.
  • إذا افترضنا مركزًا نهائيًا وحيدًا عند 0.2 ونطاقًا 0.35، يختلف إسناد النقطة 1.2 باختلاف cluster_all؛ لا يثبت الاستبعاد خطأها. [1]

حدد النافذة والبداية قبل التحريك

لدينا قيم على خط عددي: 0 و 0.2 و 0.4 و 1.2. نفترض مرشحًا واحدًا عند 0.1 ومسافة إقليدية، ونعطي كل نقطة داخل النافذة وزنًا متساويًا. لا نستعمل وزنًا يتناقص تدريجيًا مع المسافة.

نحسب النقاط التي تقع ضمن عرض النطاق من المرشح، ثم متوسطها، ونعيد الفحص من الموضع الجديد. هذا سجل يدوي لمرشح معين؛ لم نشغل MeanShift أو نحدد كل البدايات التي تختارها المكتبة.

وجود نقطة خارج النافذة لا يمحوها من البيانات. نستبعدها من هذا المتوسط في هذه الخطوة فقط. احتفظ بقائمة النقاط كلها إلى جانب قائمة المشاركين حتى لا يختلط استبعاد المساهمة بحذف السجل.

عرضان يعطيان موضعين مختلفين

عند النطاق 0.35، تدخل القيم 0 و 0.2 و 0.4 من البداية 0.1. متوسطها (0+0.2+0.4)/3=0.2. عند إعادة النافذة حول 0.2 تبقى القيم الثلاث داخلها، فيبقى المتوسط نفسه.

عند النطاق 1.2، تدخل القيم الأربع من البداية نفسها. المتوسط (0+0.2+0.4+1.2)/4=0.45. وما زالت القيم الأربع ضمن هذا النطاق من 0.45، لذلك لا يتحرك مرشحنا في التحديث التالي.

الفارق لا يأتي من تغيير البيانات أو أوزانها. تغيرت النافذة، فانضمت قيمة 1.2 إلى حساب المتوسط. نعزل هنا سبب التغير ولا نزعم أن أحد النطاقين أفضل لمهمة لم نعرفها.

المرشح المتوسط ليس نقطة ممثلة من القائمة

القيمة 0.45 لا تطابق أيًا من القيم الأربع الأصلية. هذا متوقع في متوسطنا الحسابي؛ جمع قيم موجودة وقسمتها على عددها لا يلزم أن يعيد واحدة منها.

الواجهة الموثقة تجمع المراكز المتقاربة بعد البحث عن المرشحين، ولذلك لا يساوي عدد البدايات بالضرورة عدد المراكز النهائية. [1]

لو أضفنا بدايات أخرى، نحتاج إلى تتبع حركتها ثم كيفية معالجة المرشحين معًا. لا نحول نتيجتي عرضي النطاق إلى إعلان عن عدد مجموعات ملف كامل؛ درسنا مرشحًا واحدًا في كل حساب.

ماذا يحدث للنقطة خارج نطاق المركز؟

في التنفيذ الموثق، يسند cluster_all=True النقاط الخارجة إلى أقرب مركز، بينما يعطيها الخيار False التسمية −1. [1]

لنفترض الآن مركزًا نهائيًا وحيدًا عند 0.2 ونطاقًا 0.35. النقطة 1.2 تبعد عنه واحدًا، فتقع خارج النطاق. وفق الخيار الأول ستسند إلى المركز الوحيد؛ وفق الثاني تحمل تسمية الاستبعاد.

هذا افتراض مستقل لقراءة الخيار، لا خرج تشغيل حسبناه من جميع البدايات. وتسمية الاستبعاد لا تعني أن الرقم 1.2 خطأ قياس أو قيمة ينبغي حذفها؛ إنها نتيجة قاعدة الإسناد التي اخترناها لهذه الحالة.

المصادر ومتابعة القراءة

  1. scikit-learn: MeanShift (يفتح في نافذة جديدة)scikit-learn.org

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.