علوم وفضاء

polyfit: هل deg=[1] مثل deg=1؟

الحدود المسموحة والمعاملات المسجلة لكل نموذج.
حذف الثابت يغير الميل المختار هنا.

deg=1 يسمح بالدرجتين صفر وواحد، بينما deg=[1] يختار درجة واحد فقط في polyfit. [1]

الدرجة القصوى أم قائمة الحدود؟

deg=1 يسمح بالدرجتين صفر وواحد، بينما deg=[1] يختار درجة واحد فقط في polyfit. [1]

تصف وثائق polyfit ملاءمة كثير حدود بالمربعات الصغرى، وترتب المعاملات من الدرجة الدنيا إلى العليا. [1]

نقارن في هذا المقال خيارين على البيانات نفسها. في الأول نسمح بثابت مستقل وميل، أي p(x)=a+bx. في الثاني نسمح بميل فقط، أي p(x)=βx. لا نغير الأوزان أو إحداثيات المتغير؛ نغير ما يستطيع النموذج تمثيله قبل اختيار المعاملات.

الدرجة صفر تعني الحد الثابت لأن x⁰=1. استبعاده لا يعني حذف إحدى النقاط أو تجاهل قيمتها في الكلفة. وتقييد الثابت بالصفر مختلف عن العثور على ثابت صفري بعد ملاءمة نموذج يسمح له بأي قيمة.

ثلاث نقاط ونموذجان مختلفان

شغّلنا NumPy 2.3.5 وCPython 3.12.14 على x=[0,1,2] وy=[5,8,11] من float64. سجل deg=1 نحو [5,3]، وسجل deg=[1] نحو [0,6].

import numpy as np from numpy.polynomial import polynomial as P x=np.array([0,1,2],dtype=np.float64) y=np.array([5,8,11],dtype=np.float64) print(P.polyfit(x,y,1)) print(P.polyfit(x,y,[1])) print(P.polyfit(x,y,[0,1]))

اخترنا القيم دون وحدات مادية أو قياس ميداني. النموذج 5+3x يعطي بالتعويض 5 و8 و11 عند المدخلات الثلاثة، ولذلك يحقق كلفة صفرًا في الحساب الدقيق. سجلت الملاءمة الكاملة المعاملين [5.0000000000000036,2.999999999999999]، لا العددين الصحيحين حرفيًا.

أما الملاءمة المقيدة فسجلت [0.0,6.0000000000000036]. هذا ترتيب معاملات كثير الحدود في المتغير الأصلي: الموضع الأول ثابت، والثاني معامل x. طول كل من المصفوفتين اثنان في تشغيلنا؛ وجود الصفر ليس دليلًا على أن الخرج يحمل معاملًا واحدًا فقط.

عند x=0 يتعين أن يعطي βx صفرًا مهما اخترنا β. لكن قيمة البيانات هناك 5؛ لذلك لا يمكن لهذا النموذج مطابقة النقاط كلها. يبقى المتبقي عند الصفر 5 ومساهمته في مجموع المربعات 25، حتى لو غيرنا الميل.

إذا اخترنا الميل الحقيقي للمثال 3 داخل النموذج المقيد، نحصل على [0,3,6] وتكون المتبقيات [5,5,5]. مجموع مربعاتها 75. لهذا لا يكفي أخذ ميل الملاءمة الكاملة وحذف ثابتها بعد الحساب؛ حل النموذج المقيد يختار ميلًا جديدًا.

لماذا صار الميل ستة؟

المثال الكامل يسمح بثابت وميل، فيطابق 5+3x. النموذج المقيد p(x)=βx يعطي β=6؛ متبقياته [5,2,−1] ومجموع مربعاتها 30.

نحسب الكلفة المقيدة يدويًا: J(β)=5²+(8−β)²+(11−2β)². بالنشر تصبح 5β²−60β+210، وبإكمال المربع J(β)=5(β−6)²+30. أصغر قيمة للمربع صفر، فتكون الكلفة الدنيا 30 عند β=6.

عند هذا الميل تكون القيم المتوقعة [0,6,12]، والمتبقيات y ناقص التوقع [5,2,−1]. حساب 25+4+1 يعيد 30. المتبقي السالب الأخير يعني أن التوقع 12 أكبر من القيمة 11، لكنه يضيف مربعًا موجبًا إلى الكلفة.

يمكن حساب الميل نفسه من Σxy/Σx². البسط 0×5+1×8+2×11=30، والمقام 0²+1²+2²=5، فينتج 6. هذه معادلة النموذج دون ثابت في بياناتنا، وليست صيغة ميل مستقيم يمر بأي نقطتين نختارهما.

تتحقق المعادلة Σx(y−βx)=0 عند الحل: 0×5+1×2+2×(−1)=0. هذا التعادل الموزون بالمدخل لا يقتضي أن كل متبقٍ يساوي صفرًا أو أن مجموع المتبقيات يساوي صفرًا؛ مجموعها هنا 6.

المجموع العددي المسجل للمربعات في النموذج المقيد كان 30، وفي الكامل نحو 2.84×10⁻²⁹. ننسب الصفر الدقيق إلى المرجع الجبري، ونصف التشغيل الكامل بأنه قريب من الصفر. انخفاض كلفة الملاءمة هنا لا يثبت تفوقًا تنبؤيًا على بيانات جديدة.

قيم البيانات وتوقعات النموذجين ومتبقيات المقيد.
مجموع مربعات متبقيات المقيد يساوي 30.

التحكم وحدود الفحص

تحكم deg=[0,1] وافق deg=1 في المعاملات. الصفر الأول في خرج النموذج المقيد موضع معامل ثابت ممنوع، ولا يجعل طول الخرج واحدًا.

مرت 216 مقارنة على 27 حالة مؤلفة، بمرجع Fraction مستقل وتسامح معلن. لا نفحص درجات أعلى أو ضجيجًا أو جودة تنبؤ أو تشخيصات رتبة.

اخترنا ثلاث مجموعات للمدخلات: (0,1,2) و(−2,0,2) و(1,2,4). لكل مجموعة اخترنا ميلًا m من {−2,1,3} وثابتًا a من {−3,0,5}، ثم أنشأنا y=a+mx. الناتج 3×3×3=27 حالة، وليس عينة عشوائية أو دراسة قياسات.

ثمانية فحوص لكل حالة: معاملا النموذج الكامل؛ معاملا النموذج المقيد مع الصفر الأول؛ تحكم اختيار درجتي صفر وواحد؛ قيم التقييم مقابل المرجع اليدوي؛ مجموع مربعات المتبقيات؛ المعادلة Σx×المتبقي=0؛ القيمة عند الصفر وحالات اتفاق النموذجين واختلافهما؛ ثم شكل الخرج ونوعه وثبات بايتات المدخلات. الإجمالي 27×8=216.

بكسور دقيقة عرّفنا Sx=Σx وSxx=Σx² وعدد النقاط n=3. لأن Sxx موجب في مجموعاتنا، يكون ميل النموذج المقيد s=m+a×Sx/Sxx. وكلفته a²×(n−Sx²/Sxx). حسبنا التقييم والمربعات بجمع مستقل، دون استدعاء polyfit أو lstsq أو polyval أو polyvander داخل حساب المرجع.

إذا كان a=0، اتفق النموذجان في مجموعاتنا لأن البيانات تقع على mx أصلًا. وإذا كانت Sx=0 مع ثابت غير صفري، فقد يتفق الميلان بينما يبقى الثابت والمخرجات مختلفين. فلا يكفي تطابق معامل الميل وحده للحكم بأن النموذجين سواء.

قورنت المعاملات والتوقعات بتسامح مطلق 10⁻¹² ونسبي صفر، والكلفة بتسامح مطلق 10⁻¹⁰. فحصنا المعادلة العددية بتسامح 10⁻¹²، وكانت كلفة النموذج الكامل أقل من 10⁻¹⁰. خرجت مصفوفات المعاملات بشكل (2,) ونوع float64، وبقيت بايتات x وy كما هي.

لا نفحص أوزانًا أو درجات أعلى أو قيمًا غير منتهية أو مدخلات مركبة ومتعددة الأعمدة أو نقاط x مكررة أو rcond وتشخيصات الرتبة والتكييف والأداء. ولم نفحص مشاركة الذاكرة. السؤال الذي حسمناه هو معنى اختيار الحد قبل الملاءمة، لا طريقة لاختيار نموذج لبيانات واقعية.

xy5+3x6xمتبقي 6x
05505
18862
2111112−1

للتوسع: الميل والمقطع الصادي.

المراجع

  1. NumPy polynomial.polyfit

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