عقد المقدِّرات
يتبع كل نموذج في scikit-learn عقدًا واحدًا، وبسببه يمكن تبديل النماذج وتسلسلها وضبطها. لا تفعل __init__ سوى تخزين المعاملات التي تستلمها بالأسماء نفسها دون فحص أو حساب، وهذا ما يجعل get_params وset_params وclone تعمل. تتعلم fit(X, y) من البيانات وتخزن ما تعلمته في خصائص تنتهي بشرطة سفلية (coef_ وintercept_ وn_features_in_) وتعيد self لتسلسل الاستدعاءات. وتستدعي predict(X) أولًا check_is_fitted التي ترفع NotFittedError إذا لم تُشغَّل fit، ثم تتحقق من X بـ check_array وتطبق ما تعلمته. ورث من BaseEstimator لإدارة المعاملات ومن RegressorMixin للحصول على score مجانًا (ضع المزيج أولًا).
النموذج في هذا المختبر هو انحدار ريدج. مع بيانات متمركزة يحل (XᵀX+αI) w=Xᵀy ويكون الحد الثابت ȳ-x̄·w. تقلّص قيمة α الأكبر المعاملات نحو الصفر وهذه عادة جيدة حين تكون المتغيرات عائدات متأخرة مشوشة. ولأن صنفك يلتزم بالعقد تقبله make_pipeline(StandardScaler(), ShrinkageRegressor()) وcross_val_score وGridSearchCV ويعطي clone(model) نسخة جديدة غير مدرَّبة. وهذه النقطة الأخيرة مهمة في التقييم المتدحرج: درّب نسخة مستنسخة على كل نافذة تدريب لا النموذج نفسه وإلا تسربت معلومات طية إلى التالية. ودرجة توقع العائد هي ارتباط الرتب لسبيرمان بين التوقعات والنتائج على صفوف الاختبار أي معامل المعلومات.
- معاملات في المدخل وخصائص متعلَّمة في المخرج:
__init__تخزن وfitتتعلم في أسماء تنتهي بشرطة سفلية وتعيدself. - افحص قبل أن تتنبأ: تعطي
check_is_fittedوcheck_arrayالأخطاء القياسية التي تتوقعها خطوط المعالجة والمستخدمون. - درّب نسخة مستنسخة: في حلقة متدحرجة تُبقي
clone(model).fit(...)الطيات مستقلة.
المختبر: ما الذي يُقيَّم
- متغيرات متأخرة10 نقطة
- ريدج بالمعادلات الطبيعية15 نقطة
- المُنشئ10 نقطة
- التدريب والتنبؤ20 نقطة
- العمل مع Pipeline وGridSearchCV10 نقطة
- ارتباط رتب متدحرج15 نقطة
- هل يتنبأ ماضي SPY بيومه التالي؟20 نقطة