تحويل ثابت قبل تقسيم البيانات لا يشرك الاختبار تلقائيا في تعلم إحصاء، إذا كان يعمل على كل صف وحده وكانت قاعدته محددة مسبقا دون الاستعانة بالاختبار. نحتاج فحص ما تستخدمه الخطوة، لا الحكم عليها من ترتيب أسماء الملفات فقط.
الخلاصة السريعة
الدالة الثابتة والمستقلة لكل صف لا تسرب إحصاءات الصفوف الأخرى؛ لكن هذا الحكم يتطلب ثبات القاعدة واستقلال اختيارها عن معلومات الاختبار.
- تذكر وثائق FunctionTransformer التحويلات دون حالة متعلمة، وتسمح بتمرير دالة يكتبها المستخدم. [1] اسم الأداة لا يثبت أن دالتك مستقلة عن بقية البيانات.
- نفترض قاعدة مسبقة ف(س)=2×س+1: تدريب 2 و 4 يصير 5 و 9 ، واختبار 100 يصير 201 ، سواء فصلنا الصفوف أولا أو طبقنا القاعدة أولا، مع ثبات عضوية الصفوف بالمعرفات.
- إذا استمد المعامل أو الإزاحة من قيم المجموعة، أو اخترنا القاعدة بعد مراجعة نتائج الاختبار، فقد خرجنا من شروط هذا المثال.
- راجع مدخلات الدالة وحالتها وطريقة اختيارها. سلامة هذه الخطوة وحدها لا تثبت سلامة تقسيم الكيانات أو توفر الميزات أو جودة النموذج.
متى لا تحتاج الخطوة إلى تعلم حالة؟
توضح وثائق scikit-learn أن FunctionTransformer يمرر البيانات إلى دالة يحددها المستخدم، وتذكر فائدته للتحويلات دون حالة متعلمة. [1]
المقصود هنا بخطوة دون حالة متعلمة أنها لا تستخرج من مجموعة الصفوف متوسطا أو حدا أو معاملات تحفظها للتطبيق. سنقيد المثال أكثر: النتيجة لكل صف تعتمد قيمة ذلك الصف وحده وقاعدة حساب معلنة سلفا.
يمكن لدالة يكتبها المستخدم أن تقرأ صفوفا أخرى أو ملفا خارجيا أو إحصاء محفوظا. لذلك لا نصف كل استعمال لهذه الأداة بأنه آمن بمجرد اسمه، ولا نجعل كلمة «ثابت» مرادفا لأي تحويل لا يحمل طريقة باسم fit.
لماذا لا يغير الفصل نتيجة المثال؟
نؤلف ثلاثة صفوف، ونحدد عضوية المجموعتين بمعرفاتها قبل أي مقارنة، ثم نعلن أن الدالة ف(س)=2×س+1 لم تختر بناء على هذه البيانات أو نتائج الاختبار. جميع القيم هنا معلومة.
إذا فصلنا أولا، طبقنا على التدريب ف(2)=5 وف(4)=9 ، وعلى الاختبار ف(100)=201. وإذا طبقنا على الصفوف الثلاثة ثم فصلنا المعرفات نفسها، وجدنا الأرقام نفسها في كل مجموعة. لا يوجد متوسط مشترك أو معامل تعلمناه من 100.
النتيجة تخص اختيار الصفوف بالمعرفات الثابتة نفسها. إذا كانت سياسة اختيار المجموعات تعتمد القيم بعد التحويل، فذلك إجراء آخر يحتاج فحصا؛ لا نستبدل به الفصل المحدد الذي قارناه. ولم نشغل أداة أو ندرب نموذجا.
| هوية الصف ومجموعته | س الأصلية | ف(س)=2×س+1 |
|---|---|---|
| ر 1: تدريب | 2 | 5 |
| ر 2: تدريب | 4 | 9 |
| ر 3: اختبار | 100 | 201 |
ما التغير الذي يكسر هذا الاستقلال؟
لو جعلنا الإزاحة متوسط س في الملف كله، لم تعد قاعدة 2×س+إزاحة محددة دون الصفوف الأخرى. تدخل 100 حينئذ حساب الإزاحة التي ستغير نتائج التدريب. وجود صيغة حساب قصيرة لا يجعل معاملها مستقلا عن البيانات.
ولو قارنا عدة قواعد على الاختبار ثم اخترنا التي تبدو أفضل، فقد دخلت معلومات الاختبار في اختيار القاعدة حتى إذا أصبح تطبيق القاعدة المختارة مستقلا لكل صف. ثبات المعاملات وقت التشغيل لا يمحو طريقة اختيارها.
ولا يتطلب هذا الفحص أن تكون القاعدة خطية أو قابلة للعكس. عزلنا هنا مصادر المعلومات وطريقة الاختيار. قد تكون هناك مشكلات أخرى، مثل إتلاف معنى المدخل، لا يجيب عنها برهان استقلال الصفوف.
كيف نراجع التحويل في مسار العمل؟
نقترح كتابة قيم المدخلات التي تقرؤها الدالة، وما إذا كانت تستخدم إعدادا تعلمناه أو قيم صفوف أخرى، ومتى اختيرت القاعدة ولماذا. احفظ النسخة المستخدمة حتى يمكن تطبيق القاعدة نفسها لاحقا.
إذا كانت الخطوة تتعلم إحصاء، راجع مجموعة تعلمه وسياسة تطبيقه على الحالات المحجوزة للتقييم. وإذا كانت قاعدة صفية ثابتة، تحقق أيضا أن معلومات الصف نفسها متاحة في لحظة التنبؤ المقصودة. استقلال الدالة لا يجعل معلومة لاحقة متاحة مبكرا.
هذا المثال يزيل حكما عاما زائدا عن ترتيب الخطوات، ولا يقدم شهادة سلامة للمسار كله. لم نختبر دقة أو تقسيم أشخاص؛ يحتاج كل جانب إلى فحص يناسب سؤال التقييم قبل وصف النتائج بأنها تمثل حالات جديدة.
المصادر ومتابعة القراءة
- scikit-learn: FunctionTransformer (يفتح في نافذة جديدة)scikit-learn.org
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
