تقنية

موضع الإدراج في بيانات الذكاء الاصطناعي: هل نتيجة searchsorted تثبت وجود القيمة؟

رسم يبين أن موضع إدراج العدد 6 يقع أمام 9 ولا يثبت وجود 6 في القائمة
رسم توضيحي أصلي لحساب يدوي، وليس اختبارا للدالة.

لا تثبت نتيجة searchsorted وحدها وجود القيمة في البيانات. إنها تجيب عن موضع يمكن إدراج القيمة فيه مع حفظ الترتيب. قد يكون ذلك الموضع أمام قيمة مختلفة، أو عند نهاية القائمة. حين يطلب المساعد التحقق من عضوية عدد في قائمة مرتبة، يحتاج إلى فحص إضافي بعد حساب موضع الإدراج.

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

موضع الإدراج مكان مقترح يحفظ الترتيب؛ تحقق من حدود الفهرس والقيمة الفعلية قبل إعلان وجودها.

  • تعمل searchsorted على ترتيب تصاعدي، أو مع sorter يوفر فهارس الترتيب؛ الناتج موضع إدراج. [1]
  • في القائمة 2 ، 5 ، 5 ، 9 ، يكون موضع إدراج 6 هو 3 ؛ القيمة في الموضع 3 هي 9 ، فلا يوجد 6.
  • لإدراج 5 ، يعطي left الموضع 1 وright الموضع 3 في مثالنا؛ اختلافهما يتعلق بحدود مجموعة القيم المتساوية.
  • الناتج 4 يقع بعد آخر عنصر في قائمة طولها أربعة؛ لا تقرأ عنصرا عنده، ومع sorter يخص الموضع الترتيب المرتب لا موضع الأصل.

ما السؤال الذي تجيب عنه الدالة؟

تعرف NumPy الدالة بأنها تبحث عن مواضع إدراج تحفظ الترتيب. إذا لم تستخدم sorter، يجب أن يكون الإدخال الأحادي البعد مرتبا تصاعديا. ومع sorter توفر فهارس ترتبه؛ الناتج حينئذ يشير إلى القائمة المرتبة، لا مواضع الإدخال الأصلي. [1]

سنختار أعدادا منتهية وقائمة مرتبة صراحة. سؤالنا هو: هل العدد موجود؟ ولخدمته سنستخدم موضع الإدراج خطوة أولى فقط. لا نخلط بين هذا السؤال واختيار أقرب قيمة أو تعديل ترتيب مجموعة بيانات كاملة.

كيف يكون الموضع صحيحا والقيمة غائبة؟

القائمة التي وضعناها هي 2 ، 5 ، 5 ، 9 ، ومواضعها 0 ، 1 ، 2 ، 3. إذا أردنا إدراج 6 مع حفظ الترتيب، نضعه قبل 9 ، أي عند الموضع 3. لكن قراءة الموضع 3 من القائمة الأصلية تعطينا 9 ، لا 6.

لو قال المساعد إن العثور على الموضع 3 يؤكد وجود 6 ، فقد حول مكانا محتملا إلى دليل عضوية. التصحيح في مثالنا هو مقارنة القيمة المطلوبة بالقيمة الموجودة عند الموضع الصالح. هذه مساواة عددية في المثال، وليست قاعدة للتسامح مع فروق القياس.

ما الفرق بين طرفي القيم المتساوية؟

يوفر side اختيار left أو right؛ الأول يحدد أول موضع إدراج مناسب، والثاني آخره. [1]

للقيمة 5 في قائمتنا، يقع الحد الأيسر عند 1 قبل أول خمسة، والحد الأيمن عند 3 بعد ثاني خمسة وقبل 9. الفرق بين الحدين يساوي 2 في هذا المثال، وهو عدد الخمسات المتجاورة. كلا الموضعين يحفظ الترتيب عند الإدراج، لكنه لا يعني أن العنصر الأصلي عند كل منهما يساوي 5.

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

كيف تتعامل مع النهاية ومع الترتيب البديل؟

في قائمتنا، إدراج 12 يعطي الموضع 4 ، وهو نهاية القائمة التي طولها أربعة. لا يوجد عنصر أصلي في الموضع 4 ؛ لذلك افحص الحدود قبل محاولة مقارنة قيمة عنده. وإدراج 1 يعطي الموضع 0 ، لكن القيمة الأصلية هناك هي 2.

إذا كان الأصل 9 ، 2 ، 5 ، 5 وقدمت فهارس ترتبه، فموضع الإدراج 3 في الترتيب المرتب لا يعني الموضع 3 من الأصل. احفظ العلاقة بين الفهارس والترتيب، واطلب جوابا يذكر القيمة التي فحصها. جميع هذه النتائج استدلالات يدوية على أعداد معلنة، ولم ننفذ بحثا أو نقس سرعته.

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

  1. NumPy searchsorted (يفتح في نافذة جديدة)numpy.org

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