NumPy Least Squares

Numpy Least Squares



آج، ہم لکیری مساوات میں کم سے کم مربعوں کے بارے میں اور فراہم کردہ ڈیٹاسیٹس میں ریگریشن لائن کے لیے بہترین فٹ ہونے کے لیے کم سے کم مربع کے طریقہ کار کو کیسے لاگو کرنے کے بارے میں جاننے جا رہے ہیں۔ لیکن اس سے پہلے، آئیے NumPy کا بنیادی علم حاصل کریں۔ NumPy Python کے بہترین ریاضیاتی پیکجوں میں سے ایک ہے جو کثیر جہتی صفوں اور میٹرکس کے ساتھ ساتھ پیچیدہ عددی کارروائیوں کی ایک وسیع رینج کے ساتھ خدمات فراہم کرتا ہے جو ان میٹرکس/اریز پر انجام دیے جا سکتے ہیں۔

Python lsstq() کے طریقوں میں سے ایک معلوم لکیری مساوات ax=b کی ریگریشن لائن کو تلاش کرنے کے لیے استعمال کیا جاتا ہے جو اس مساوات کے ساتھ بہترین فٹ بیٹھتا ہے۔ اس کا مطلب ہے کہ آپ کو اس لائن کا تعین کرنا ہوگا جو x اور y پوائنٹس کے درمیان تعلق کو صحیح طریقے سے ظاہر کرتی ہے اگر آپ کا ڈیٹا اشارہ کرتا ہے کہ ایک ہے۔ دونوں پوائنٹس کے درمیان لائن کو ریگریشن لائن کے طور پر جانا جاتا ہے جب اسے اس مساوات کے ذریعے کم از کم مربع تلاش کرنے کے لیے استعمال کیا جاتا ہے، ax=b۔

نحو:

آئیے linalg.lstq() فنکشن کے نفاذ کے انداز کو سیکھنا شروع کریں۔ سب سے پہلے، ہم لائبریری کا نام لکھتے ہیں جو ہم Python میں استعمال کرتے ہیں جو کہ 'numpy' ہے۔ پھر، ہم linalg() فنکشن کو جوڑتے ہیں اور lsstq() فنکشن کو جوڑتے ہیں۔ linalg() فنکشن کا مطلب ہے لکیری الجبرا۔ یہ ہمیشہ lstq() فنکشن کے ساتھ استعمال ہوتا ہے کیونکہ یہ ایک لکیری الجبری اظہار ہے۔ اس کے بعد، ہم فنکشن بریکٹ میں دلائل پاس کرتے ہیں۔









پیرامیٹرز:

آئیے linalg.lstq() فنکشن کے پیرامیٹرز کو سمجھتے ہیں:



پوائنٹ 1: یہ گتانک میٹرکس ہے۔





پوائنٹ 2: یہ میٹرکس یا سرنی منحصر متغیرات پر مشتمل ہے۔

rcond: اس کا ڈیٹا ٹائپ فلوٹ ہے۔ rcond تناسب پوائنٹ_1 کی چھوٹی واحد اقدار کے لیے کٹ آف کا کام کرتا ہے۔ اگر ایک واحد قدر پوائنٹ_1 کے سب سے بڑے واحد عنصر کے rcond گنا سے کم ہے، تو درجہ بندی کا تعین کرتے وقت اسے صفر سمجھا جاتا ہے۔



واپسی کی قیمت:

بدلے میں، ہمیں مساوات ax=b میں معلوم متغیر x کا کم سے کم مربع ملتا ہے۔

مثال 1:

آئیے Python لائبریری، NumPy کے کم از کم مربع طریقہ کی اپنی پہلی مثال پر عمل درآمد شروع کریں۔ سب سے پہلے، ہمیں ایک Python کمپائلر کی ضرورت ہے تاکہ ہم اس میں کوڈ کر سکیں۔ کمپائلر کھولیں۔ آپ کو NumPy لائبریری کو بھی انسٹال کرنے کی ضرورت ہے کیونکہ ہم NumPy کے فنکشنز میں سے ایک استعمال کر رہے ہیں جو کہ lsstq() فنکشن ہے۔ پھر، آپ کو اس میں NumPy پیکیج درآمد کرنا ہوگا۔ سب سے پہلے، کلیدی لفظ 'import' لکھیں جو کمپائلر کو بتاتا ہے کہ ہم پیکج درآمد کرنے جا رہے ہیں۔ اس کے بعد، ہمیں پیکیج کا نام لکھنا ہوگا جسے ہم فنکشن میں استعمال کرتے ہیں جو کہ 'numpy' ہے۔ اور پھر، ہم NumPy 'np' کا متبادل نام بھی لکھتے ہیں کیونکہ بہت سے پروگرامر اس طریقہ کو استعمال کرتے ہیں۔ یہ پروگرامنگ کا ایک اچھا طریقہ ہے، اور یہ وقت بچاتا ہے۔

پیکج درآمد کرنے کے بعد، ہم کوڈ کی اصل لائن لکھنا شروع کر دیتے ہیں جو ہم کرنا چاہتے ہیں۔ ہم پہلے پیغامات کو پرنٹ کرتے ہیں تاکہ صارف آسانی سے سمجھ سکے کہ ہم پرنٹ() سٹیٹمنٹ کا استعمال کرتے ہوئے مثال میں کیا کر رہے ہیں۔ ہم array() فنکشن کا استعمال کرتے ہوئے ایک جہتی سرنی 'A' بناتے ہیں اور پھر print() اسٹیٹمنٹ کو کال کرکے پرنٹ کرتے ہیں۔ پھر، ہم array() فنکشن کا استعمال کرتے ہوئے ایک اور ایک جہتی سرنی 'B' بناتے ہیں اور اسے print() فنکشن کا استعمال کرتے ہوئے پرنٹ کرتے ہیں۔

درآمد بے حس کے طور پر جیسے

پرنٹ کریں ( 'NumPy میں کم سے کم مربع طریقہ کا نفاذ:' )

اے = جیسے صف ( [ 1 , دو , 1 , 1 , 1 , دو , دو , 1 , 1 ] )

پرنٹ کریں ( ' \n صف A ہے: ' , اے )

بی = جیسے صف ( [ 4 , 3 , 5 , 4 , دو , 3 , 6 , 3 , دو ] )

پرنٹ کریں ( ' \n صف بی ہے: ' , بی )

ایکس = جیسے السی . lstq ( جیسے vstack ( [ اے , جیسے والے ( صرف ( اے ) ) ] ) . ٹی , بی , rcond = کوئی نہیں۔ ) [ 0 ]

پرنٹ کریں ( ' \n سب سے کم مربع ہے: ' , ایکس )

A اور B دونوں پوائنٹس بنانے کے بعد، ہم lstq() فنکشن کو نافذ کرتے ہیں۔ لیکن پہلے، ہم 'A' کے عناصر کو ترتیب کے لحاظ سے اسٹیک کرنے کے لیے vstack() فنکشن کا استعمال کرتے ہیں۔ پھر، ہم سرنی 'A' کا ٹرانسپوز لیتے ہیں۔ پھر، ہم vstack() فنکشن کو lsstq() فنکشن کی پہلی دلیل کے طور پر پاس کرتے ہیں۔ دوسری دلیل 'B' array ہے اور تیسری دلیل 'rcond' ہے جس میں ہم نے rcond کی قدر کو 'none' کے طور پر سیٹ کیا ہے۔ پھر، ہم پورے فنکشن کو 'x' نامی ایک اور صف میں اسٹور کرتے ہیں جو ظاہر کرتا ہے کہ یہ معلوم متغیر لکیری مساوات ہے، ax=b۔ اس کے بعد، ہم نتائج دکھاتے ہیں تو ہم اس کے لیے پرنٹ() اسٹیٹمنٹ استعمال کرتے ہیں اور اس میں 'x' ارے پاس کرتے ہیں۔

مثال 2:

اب، آئیے NumPy کم از کم چوکوں کی ایک اور مثال کو نافذ کرنا شروع کریں۔ ہم ہمیشہ لائبریری کو پہلے درآمد کرتے ہیں جسے ہم پروگرام میں استعمال کرتے ہیں جو کہ NumPy ہے۔ سب سے پہلے، ہم پروگرام میں پیکیج حاصل کرنے کے لیے کلیدی لفظ 'import' لکھتے ہیں۔ ہم پیکیج کا نام بھی لکھتے ہیں جو 'numpy' ہے اور پھر اس کا عرف، 'np'۔ پھر، ہم پرنٹ() طریقہ کو کہتے ہیں تاکہ ہم صارف کی بہتر تفہیم کے لیے کم سے کم چوکوں کے retable پیغام کو ظاہر کر سکیں۔

پھر، ہم ارے کا نام 'x_axis' بناتے ہیں اور arrange() فنکشن کا استعمال کرتے ہوئے اس میں ارے کو اسٹور کرتے ہیں۔ پھر، ہم اسے print() طریقہ استعمال کرکے پرنٹ کرتے ہیں۔ اس کے بعد، ہم ایک اور سرنی کا نام 'y_axis' بناتے ہیں اور اس میں ارے کو اسٹور کرتے ہیں جسے ہم نے مندرجہ ذیل مثال میں بنایا ہے۔

دونوں اریوں کو بنانے کے بعد، ہم x_axis array پر ones() طریقہ کو نافذ کرتے ہیں اور اسے 'array_a' نامی ایک اور صف میں اسٹور کرتے ہیں۔ اور پھر، ہم بھی اس صف کو پرنٹ کریں. ہم 'arg_reg_line' کے نام سے ایک اور صف بناتے ہیں اور اس پر ایک linalg.lstsq() فنکشن نافذ کرتے ہیں۔ پھر، ہم پیرامیٹرز کو اس فنکشن میں منتقل کرتے ہیں تاکہ ہم دو صفوں یا پوائنٹس کے درمیان کم سے کم مربع حاصل کر سکیں۔ پہلا پیرامیٹر یہ ہے کہ ہم array_a کا ٹرانسپوز لیتے ہیں۔ دوسرا پیرامیٹر دوسرا نقطہ ہے جو y_axis ہے۔ پھر، ہمارے پاس 'rcond' ہے جس میں 'none' ویلیو شامل ہے۔ پھر ہم پرنٹ() طریقہ استعمال کرتے ہوئے صف کو ظاہر کرتے ہیں۔

درآمد بے حس کے طور پر جیسے

پرنٹ کریں ( 'linalg.lstsq() فنکشن کا نفاذ:' )

x_axis = جیسے بندوبست ( 0 , 10 )

پرنٹ کریں ( ' \n ایکس محور کی قدر یہ ہیں: ' , x_axis )

y_axis = [ 10.3 , 10.5 , گیارہ , 11.5 , 13.2 , 13.9 , 14 , 15.5 , 16.6 , 17 ]

پرنٹ کریں ( ' \n y محور کی قدر یہ ہیں: ' , y_axis )

array_a = جیسے صف ( [ x_axis , جیسے والے ( 10 ) ] )

پرنٹ کریں ( ' \n صف یہ ہے: \n ' , array_a )

arg_reg_line = جیسے السی . lstq ( array_a ٹی , y_axis , rcond = کوئی نہیں۔ ) [ 0 ]

پرنٹ کریں ( ' \n ریگریشن لائن کے پیرامیٹرز ہیں: ' , arg_reg_line )

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

درآمد matplotlib. pyplot کے طور پر plt

plt پلاٹ ( x_axis , reg_line , 'r-' )

plt پلاٹ ( x_axis , y_axis , 'او' )

plt عنوان ( 'لکیری ریگریشن لائن' )

plt xlabel ( 'X-Axis' )

plt ylabel ( 'Y-Axis' )

plt دکھائیں ( )

previoulsy سے نافذ کردہ مثال کا آؤٹ پٹ یہ ہے:

ہم NumPy کا ایک اور پیکیج درآمد کرتے ہیں جو کہ 'matplotlib' پیکیج ہے جو گراف کو پلاٹ کرنے کے لیے استعمال ہوتا ہے۔ پھر، ہم x_axis اقدار اور y_axis_values ​​کو پلاٹ کرتے ہیں۔ اگلا، ہم گراف کا عنوان اور لیبل سیٹ کرتے ہیں۔ آخر میں، ہم show() طریقہ استعمال کرتے ہوئے گراف دکھاتے ہیں۔

یہاں دی گئی مثال کا مطلوبہ گراف ہے:

نتیجہ

اس مضمون میں، ہم نے سیکھا کہ کم سے کم مربع کیا ہے اور ہم لکیری مساوات ax=b کا استعمال کرتے ہوئے نامعلوم متغیر x کا linalg.lstsq() کیسے حاصل کرتے ہیں۔ ہم نے کم سے کم اسکوائر تلاش کرنے کے لیے NumPy کے متعدد فنکشنز کا استعمال کیا اور صارف کی بہتر تفہیم کے لیے تفصیلی وضاحت کے ساتھ کچھ مثالیں نافذ کیں۔