فحص القيم المحدودة يختلف عن البحث عن NaN فقط. قد يستبعد مسار تجهيز بيانات الذكاء الاصطناعي حالة واحدة ويبقي حالات لا يقصد قبولها. نضع أربع قيم معلنة ونقرأ جواب كل فحص، ثم نفصل نتيجة الفحص عن قرار حذف السجل أو تعويضه.
الخلاصة السريعة
لا؛ isnan يختبر NaN، أما isfinite فيستبعد NaN واللانهاية الموجبة واللانهاية السالبة. [1][2]
- يرجع isnan جوابا منطقيا لكل عنصر: صحيح عندما يكون NaN، وخطأ خلاف ذلك؛ NaN ليس اللانهاية. [1]
- في قائمتنا صفر وNaN ولانهاية موجبة ولانهاية سالبة، نفي isnan يقبل الصفر واللانهايتين، ويستبعد NaN فقط.
- يعطي isfinite صحيحا للقيمة المحدودة، وخطأ لكل من NaN واللانهايتين. [2] في المثال يبقى الصفر وحده.
- الفحص لا يختار سبب القيمة أو سياسة السجل. حدد ما تريد قبوله واحفظ الحالات المستبعدة للمراجعة؛ لم نشغل NumPy أو ندع قبول هذه القيم في كل نموذج.
ما السؤال الذي تجيب عنه isnan؟
تعرف وثائق NumPy isnan باختبار NaN لكل عنصر، مع جواب من نوع صحيح أو خطأ؛ وتفصل NaN عن اللانهاية. [1]
نستعمل «صحيح» بمعنى أن الشرط تحقق، لا بمعنى أن القياس صحيح علميا. فإذا أعطى الفحص صحيحا، فهذا يقول إن القيمة NaN. وإذا أعطى خطأ، فقد تكون قيمة محدودة أو لانهاية، وفقا للقائمة التي نعلنها.
لا نولد هذه الحالات بقسمة أو عملية لوغاريتم في تجربة. نضعها مباشرة في المثال لفحص معنى السؤال، دون أن ننسبها إلى سبب حسابي أو خطأ تسجيل حدث فعلا.
ماذا يمر إذا نفينا شرط NaN؟
نؤلف قائمة مرتبة: صفر، ثمNaN، ثم لانهاية موجبة، ثم لانهاية سالبة. أجوبة isnan هي خطأ، صحيح، خطأ، خطأ. إذا كانت قاعدة القبول «ليست NaN»، نعكس هذه الأجوبة، فيصبح القبول صحيحا، خطأ، صحيحا، صحيحا.
إذن تمر اللانهايتان مع الصفر. هذا ليس عيبا في السؤال؛ لقد سألنا فقط عن NaN. المشكلة تظهر إذا كتبنا في التقرير أن القاعدة أثبتت محدودية كل القيم المقبولة، مع أنها لم تسأل عن ذلك.
نحتفظ بمواضع القائمة عند القراءة. الجواب الثاني يخص NaN الثانية، ولا نرتب الأقنعة مستقلة عن قيمها؛ وإلا فقد ننسب قرار الاستبعاد إلى سجل آخر.
كيف يغير isfinite السؤال؟
ينص تعريف isfinite على اختبار المحدودية: خطأ للانهاية الموجبة أو السالبة أوNaN، وصحيح خلاف ذلك. [2]
على القائمة المعلنة تكون الأجوبة صحيحا للصفر وخطأ للحالات الثلاث الأخرى. لذلك لا يكفي نفي isnan للحصول على قناع isfinite؛ الأول يترك اللانهاية، بينما الثاني يجيب عن سؤال أوسع في هذا المثال.
نعرض القناع بوصفه نتيجة من التعريف، لا مخرجات تشغيل. كما لا نستنتج أن الصفر مقبول في كل حقل: قد تكون له شروط وحدة أو مجال أو معنى تحتاج إلى فحص مستقل.
| القيمة المعلنة | isnan | ليست NaN | isfinite |
|---|---|---|---|
| صفر | خطأ | صحيح | صحيح |
| NaN | صحيح | خطأ | خطأ |
| لانهاية موجبة | خطأ | صحيح | خطأ |
| لانهاية سالبة | خطأ | صحيح | خطأ |
هل القناع قرار تنظيف كامل؟
نفترض أن شرط تمريننا يريد قيما محدودة فقط. القناع يساعد على تحديد المواضع التي لا تحقق الشرط، لكنه لا يخبرنا لماذا وجدت فيها هذه القيمة. قد تحتاج مراجعة المصدر أو سياسة للمعلومات الغائبة؛ لا نختار تعويضا من جواب منطقي وحده.
نقترح حفظ القيمة والموضع والفحص المستخدم وحالة المراجعة في نسخة مناسبة. حذف السجل أو استبدال قيمته خطوة مستقلة تحتاج مبررها، ولا نكتب أن البيانات أصبحت صحيحة كلها لأن قناعا لم يجد NaN.
لم نشغل NumPy أو نقيم نموذجًا. المثال يبين فرق فحصين وشروط القبول المعلنة، ولا يثبت أن واجهة تدريب معينة تقبل اللانهاية أو ترفضها أو تحسن أداءها بعد استبعادها.
المصادر ومتابعة القراءة
- NumPy: isnan (يفتح في نافذة جديدة)numpy.org
- NumPy: isfinite (يفتح في نافذة جديدة)numpy.org
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
