المربعات الصغرى NumPy

Almrb At Alsghry Numpy



اليوم ، سوف نتعرف على المربعات الصغرى في المعادلات الخطية وكيفية تنفيذ طريقة المربعات الصغرى للحصول على أفضل ملاءمة لخط الانحدار في مجموعات البيانات المتوفرة. ولكن قبل ذلك ، دعنا نحصل على المعرفة الأساسية لـ NumPy. تعد NumPy واحدة من أفضل الحزم الرياضية في Python التي توفر خدمات للمصفوفات والمصفوفات متعددة الأبعاد جنبًا إلى جنب مع مجموعة واسعة من العمليات العددية المعقدة التي يمكن إجراؤها على هذه المصفوفات / المصفوفات.

تُستخدم إحدى طرق Python lstsq () للعثور على خط الانحدار للمعادلة الخطية المعروفة ax = b التي تتلاءم بشكل أفضل مع هذه المعادلة. هذا يعني أنه يجب عليك تحديد الخط الذي يوضح العلاقة بين نقطتي x و y بشكل صحيح إذا كانت بياناتك تشير إلى وجود واحد. يُعرف الخط الفاصل بين النقطتين بخط الانحدار عندما يتم استخدامه للعثور على المربع الأصغر من خلال هذه المعادلة ، الفأس = ب.

بناء الجملة:

لنبدأ في تعلم أسلوب التنفيذ لوظيفة linalg.lstsq (). أولاً ، نكتب اسم المكتبة الذي نستخدمه في Python وهو 'numpy'. بعد ذلك ، نقوم بتوصيل دالة linalg () وسلسلة دالة lstsq (). دالة linalg () تعني الجبر الخطي. تُستخدم دائمًا مع الدالة lstsq () لأنها تعبير جبري خطي. بعد ذلك ، نقوم بتمرير الوسيطات الموجودة بين قوسين.









المعلمات:

دعونا نفهم معاملات الدالة linalg.lstsq ():



النقطة 1: إنها مصفوفة المعامل.





النقطة 2: تحتوي هذه المصفوفة أو المصفوفة على متغيرات تابعة.

rcond: نوع البيانات منه عائم. تعمل نسبة rcond كقطع للقيم الفردية الأصغر لـ point_1. إذا كانت القيمة المفردة أقل من rcond مرات أكبر عنصر منفرد في point_1 ، فإنها تعتبر صفرًا عند تحديد الترتيب.



قيمة الإرجاع:

في المقابل ، نحصل على أصغر مربع للمتغير المعروف x في المعادلة ax = b.

مثال 1:

لنبدأ في تنفيذ مثالنا الأول لطريقة المربع الصغرى لمكتبة Python ، NumPy. أولاً ، نحتاج إلى مترجم Python حتى نتمكن من البرمجة فيه. افتح المترجم. تحتاج أيضًا إلى تثبيت مكتبة NumPy لأننا نستخدم إحدى وظائف NumPy وهي وظيفة lstsq (). بعد ذلك ، يجب عليك استيراد حزمة NumPy فيها. أولاً ، اكتب الكلمة الأساسية 'import' التي تخبر المترجم بأننا سنقوم باستيراد الحزمة. بعد ذلك ، علينا كتابة اسم الحزمة الذي نستخدمه في الوظيفة وهو 'numpy'. وبعد ذلك ، نكتب أيضًا الاسم البديل لـ NumPy 'np' لأن العديد من المبرمجين يستخدمون هذا الأسلوب. هذه طريقة برمجة جيدة وتوفر الوقت.

بعد استيراد الحزمة ، نبدأ في كتابة السطر الفعلي من الكود الذي نريد القيام به. نقوم بطباعة الرسائل أولاً حتى يتمكن المستخدم من فهم ما نقوم به بسهولة في المثال باستخدام العبارة print (). نقوم بإنشاء المصفوفة أحادية البعد 'A' باستخدام وظيفة المصفوفة () ثم نطبعها باستدعاء عبارة print (). بعد ذلك ، نقوم بإنشاء مصفوفة أخرى أحادية البعد 'B' باستخدام وظيفة المصفوفة () ونطبعها باستخدام وظيفة الطباعة ().

يستورد حبيبي كما على سبيل المثال

مطبعة ( 'تنفيذ طريقة المربعات الصغرى في NumPy:' )

أ = على سبيل المثال مجموعة مصفوفة ( [ 1 و اثنين و 1 و 1 و 1 و اثنين و اثنين و 1 و 1 ] )

مطبعة ( ' المصفوفة أ هي: ' و أ )

ب = على سبيل المثال مجموعة مصفوفة ( [ 4 و 3 و 5 و 4 و اثنين و 3 و 6 و 3 و اثنين ] )

مطبعة ( ' المصفوفة ب هي: ' و ب )

X = على سبيل المثال بذر الكتان . lstsq ( على سبيل المثال vstack ( [ أ و على سبيل المثال منها ( فقط ( أ ) ) ] ) . تي و ب و rcond = لا أحد ) [ 0 ]

مطبعة ( ' المربع الأدنى هو: ' و X )

بعد إنشاء النقطتين A و B ، نقوم بتنفيذ وظيفة lstsq (). لكن أولاً ، نستخدم الدالة vstack () لتكديس عناصر 'A' حسب التسلسل. ثم نأخذ تبديل المصفوفة 'A'. بعد ذلك ، نقوم بتمرير الدالة vstack () باعتبارها الوسيطة الأولى للدالة lstsq (). الوسيطة الثانية هي المصفوفة 'B' والوسيطة الثالثة هي 'rcond' حيث قمنا بتعيين قيمة rcond على أنها 'لا شيء'. بعد ذلك ، نقوم بتخزين الوظيفة بأكملها في مصفوفة أخرى تسمى 'x' مما يدل على أنها المعادلة الخطية المتغيرة المعروفة ، ax = b. بعد ذلك ، نعرض النتائج لذلك نستخدم تعليمة print () لهذا ونمرر مصفوفة “x” فيها.

المثال الثاني:

الآن ، لنبدأ في تنفيذ مثال آخر لمربعات NumPy الصغرى. نقوم دائمًا باستيراد المكتبة أولاً التي نستخدمها في البرنامج وهو NumPy. أولاً ، نكتب الكلمة الأساسية 'import' للحصول على الحزمة في البرنامج. نكتب أيضًا اسم الحزمة وهو 'numpy' ثم اسمه المستعار 'np'. بعد ذلك ، نسمي طريقة print () حتى نتمكن من عرض رسالة إعادة التعديل للمربعات الصغرى لفهم المستخدم بشكل أفضل.

ثم ننشئ اسم المصفوفة “x_axis” ونخزن المصفوفة فيه باستخدام الدالة arange (). ثم نقوم بطباعته باستخدام طريقة الطباعة (). بعد ذلك ، نقوم بإنشاء اسم مصفوفة أخرى 'y_axis' وقمنا بتخزين المصفوفة التي أنشأناها في الرسم التوضيحي التالي.

بعد إنشاء كلتا المصفوفتين ، نقوم بتنفيذ التابع one () على المصفوفة x_axis وتخزينها في مصفوفة أخرى تسمى 'array_a'. وبعد ذلك ، نطبع هذه المصفوفة أيضًا. نقوم بإنشاء مصفوفة أخرى تسمى 'arg_reg_line' ونقوم بتنفيذ دالة linalg.lstsq () عليها. بعد ذلك ، نقوم بتمرير المعلمات إلى هذه الوظيفة حتى نتمكن من الحصول على المربعات الصغرى بين مصفوفتين أو نقطتين. المعلمة الأولى هي أننا نأخذ تبديل array_a. المعلمة الثانية هي النقطة الثانية وهي المحور y. ثم لدينا 'rcond' التي تحتوي على القيمة 'لا شيء'. ثم نعرض المصفوفة باستخدام طريقة print ().

يستورد حبيبي كما على سبيل المثال

مطبعة ( 'تنفيذ وظيفة linalg.lstsq ():' )

المحور العاشر = على سبيل المثال غريب ( 0 و 10 )

مطبعة ( ' قيمة المحور س هي: ' و المحور العاشر )

المحور y = [ 10.3 و 10.5 و أحد عشر و 11.5 و 13.2 و 13.9 و 14 و 15.5 و 16.6 و 17 ]

مطبعة ( ' قيمة المحور ص هي: ' و المحور y )

صفيف_أ = على سبيل المثال مجموعة مصفوفة ( [ المحور العاشر و على سبيل المثال منها ( 10 ) ] )

مطبعة ( ' المصفوفة هي: ' و صفيف_أ )

arg_reg_line = على سبيل المثال بذر الكتان . lstsq ( صفيف_أ. تي و المحور y و rcond = لا أحد ) [ 0 ]

مطبعة ( ' معلمات خط Regrssion هي: ' و arg_reg_line )

reg_line = arg_reg_line [ 0 ] * x_axis + arg_reg_line [ 1 ]

يستورد matplotlib. pyplot كما PLT

PLT. حبكة ( المحور العاشر و reg_line و 'r-' )

PLT. حبكة ( المحور العاشر و المحور y و 'يا' )

PLT. لقب ( 'خط الانحدار الخطي' )

PLT. xlabel ( 'المحور السيني' )

PLT. ylabel ( 'المحور ص' )

PLT. تبين ( )

فيما يلي ناتج المثال الذي تم تنفيذه مسبقًا:

نقوم باستيراد حزمة أخرى من NumPy وهي حزمة 'matplotlib' التي تُستخدم لرسم الرسم البياني. ثم نرسم قيم المحور x و y_axis_values. بعد ذلك ، قمنا بتعيين عنوان وتسميات الرسم البياني. أخيرًا ، نعرض الرسم البياني باستخدام طريقة show ().

فيما يلي الرسم البياني المطلوب للمثال المحدد:

استنتاج

في هذه المقالة ، تعلمنا ما هو أصغر مربع وكيف نحصل على linalg.lstsq () للمتغير المجهول x باستخدام المعادلة الخطية ax = b. استخدمنا وظائف متعددة لـ NumPy للعثور على المربعات الصغرى وقمنا بتنفيذ بعض الأمثلة مع الشروحات التفصيلية من أجل فهم أفضل للمستخدم.