NumPy সর্বনিম্ন বর্গক্ষেত্র

Numpy Sarbanimna Bargaksetra



আজ, আমরা রৈখিক সমীকরণের সর্বনিম্ন বর্গক্ষেত্র এবং প্রদত্ত ডেটাসেটে রিগ্রেশন লাইনের জন্য সর্বোত্তম ফিট করার জন্য কীভাবে সর্বনিম্ন বর্গ পদ্ধতি প্রয়োগ করা যায় সে সম্পর্কে শিখতে যাচ্ছি। তবে তার আগে, আসুন NumPy এর প্রাথমিক জ্ঞান লাভ করি। NumPy হল Python-এর সেরা গাণিতিক প্যাকেজগুলির মধ্যে একটি যা বহু-মাত্রিক অ্যারে এবং ম্যাট্রিসের জন্য পরিষেবা প্রদান করে এবং এই ম্যাট্রিস/অ্যারেগুলিতে সঞ্চালিত হতে পারে এমন বিস্তৃত জটিল সংখ্যাসূচক অপারেশনগুলির সাথে।

Python lstsq() এর একটি পদ্ধতি পরিচিত রৈখিক সমীকরণ ax=b এর রিগ্রেশন লাইন খুঁজে বের করতে ব্যবহার করা হয় যা এই সমীকরণের সাথে সবচেয়ে ভালো মানানসই। এর মানে হল আপনাকে সেই লাইনটি নির্ধারণ করতে হবে যা সঠিকভাবে x এবং y পয়েন্টের মধ্যে সম্পর্ক দেখায় যদি আপনার ডেটা নির্দেশ করে যে একটি আছে। উভয় বিন্দুর মধ্যবর্তী রেখাটি একটি রিগ্রেশন লাইন হিসাবে পরিচিত যখন এটি এই সমীকরণের মাধ্যমে সর্বনিম্ন বর্গ খুঁজে বের করতে ব্যবহৃত হয়, ax=b।

বাক্য গঠন:

আসুন linalg.lstq() ফাংশনের বাস্তবায়ন শৈলী শেখা শুরু করি। প্রথমত, আমরা পাইথনে যে লাইব্রেরির নাম ব্যবহার করি তা লিখি যা 'numpy'। তারপর, আমরা linalg() ফাংশনকে সংযুক্ত করি এবং lstsq() ফাংশনকে সংযুক্ত করি। Linalg() ফাংশন মানে রৈখিক বীজগণিত। এটি সর্বদা lstq() ফাংশনের সাথে ব্যবহার করা হয় কারণ এটি একটি রৈখিক বীজগণিতীয় অভিব্যক্তি। এর পরে, আমরা ফাংশন বন্ধনীতে আর্গুমেন্ট পাস করি।









পরামিতি:

আসুন linalg.lstsq() ফাংশনের প্যারামিটারগুলি বুঝতে পারি:



পয়েন্ট 1: এটি সহগ ম্যাট্রিক্স।





পয়েন্ট 2: এই ম্যাট্রিক্স বা অ্যারে নির্ভরশীল ভেরিয়েবল ধারণ করে।

rcond: এর ডেটাটাইপ হল ফ্লোট। পয়েন্ট_1 এর ছোট একবচন মানের জন্য rcond অনুপাত একটি কাট-অফ হিসাবে কাজ করে। যদি একটি একবচন মান পয়েন্ট_1-এর সবচেয়ে বড় একবচন উপাদানের rcond গুণের চেয়ে কম হয়, তাহলে র‍্যাঙ্ক নির্ণয় করার সময় এটি শূন্য বলে বিবেচিত হয়।



ফেরত মূল্য:

বিনিময়ে, আমরা ax=b সমীকরণে পরিচিত চলক x এর সর্বনিম্ন বর্গ পাই।

উদাহরণ 1:

আসুন পাইথন লাইব্রেরি, NumPy-এর একটি ন্যূনতম বর্গক্ষেত্র পদ্ধতির প্রথম উদাহরণ বাস্তবায়ন করা শুরু করি। প্রথমত, আমাদের একটি পাইথন কম্পাইলার দরকার যাতে আমরা এতে কোড করতে পারি। কম্পাইলার খুলুন। আপনাকে NumPy লাইব্রেরিও ইনস্টল করতে হবে কারণ আমরা NumPy-এর একটি ফাংশন ব্যবহার করছি যা হল lstsq() ফাংশন। তারপরে, আপনাকে এতে NumPy প্যাকেজ আমদানি করতে হবে। প্রথমে, 'import' কীওয়ার্ড লিখুন যা কম্পাইলারকে বলে যে আমরা প্যাকেজটি আমদানি করতে যাচ্ছি। তারপর, আমাদের প্যাকেজের নাম লিখতে হবে যা আমরা ফাংশনে ব্যবহার করি যা 'numpy'। এবং তারপর, আমরা NumPy 'np' এর বিকল্প নামও লিখি কারণ অনেক প্রোগ্রামার এই পদ্ধতিটি ব্যবহার করে। এটি একটি ভাল প্রোগ্রামিং পদ্ধতি, এবং এটি সময় বাঁচায়।

প্যাকেজ আমদানি করার পরে, আমরা কোডের প্রকৃত লাইন লিখতে শুরু করি যা আমরা করতে চাই। আমরা প্রথমে বার্তাগুলি প্রিন্ট করি যাতে ব্যবহারকারী সহজেই বুঝতে পারে আমরা print() স্টেটমেন্ট ব্যবহার করে উদাহরণে কী করছি। আমরা অ্যারে() ফাংশন ব্যবহার করে এক-মাত্রিক অ্যারে 'A' তৈরি করি এবং তারপর print() স্টেটমেন্ট কল করে এটি প্রিন্ট করি। তারপর, আমরা array() ফাংশন ব্যবহার করে আরেকটি এক-মাত্রিক অ্যারে “B” তৈরি করি এবং print() ফাংশন ব্যবহার করে প্রিন্ট করি।

আমদানি নম্র হিসাবে যেমন

ছাপা ( 'NumPy তে সর্বনিম্ন বর্গক্ষেত্র পদ্ধতির বাস্তবায়ন:' )

= যেমন অ্যারে ( [ 1 , দুই , 1 , 1 , 1 , দুই , দুই , 1 , 1 ] )

ছাপা ( ' \n অ্যারে এ হল: ' , )

= যেমন অ্যারে ( [ 4 , 3 , 5 , 4 , দুই , 3 , 6 , 3 , দুই ] )

ছাপা ( ' \n অ্যারে বি হল: ' , )

এক্স = যেমন তিসি . lstq ( যেমন vstack ( [ , যেমন বেশী ( কেবল ( ) ) ] ) . টি , , rcond = কোনোটিই নয় ) [ 0 ]

ছাপা ( ' \n সর্বনিম্ন বর্গক্ষেত্র হল: ' , এক্স )

A এবং B উভয় বিন্দু তৈরি করার পর, আমরা lstq() ফাংশন বাস্তবায়ন করি। কিন্তু প্রথমে, আমরা 'A' এর উপাদানগুলিকে ক্রম অনুসারে স্ট্যাক করতে vstack() ফাংশন ব্যবহার করি। তারপর, আমরা অ্যারে 'A' এর স্থানান্তর নিই। তারপর, আমরা lsstq() ফাংশনের প্রথম আর্গুমেন্ট হিসাবে vstack() ফাংশন পাস করি। দ্বিতীয় আর্গুমেন্ট হল “B” অ্যারে এবং তৃতীয় আর্গুমেন্ট হল “rcond” যেখানে আমরা rcond-এর মান “none” হিসেবে সেট করি। তারপর, আমরা পুরো ফাংশনটিকে “x” নামের আরেকটি অ্যারেতে সংরক্ষণ করি যা দেখায় যে এটি পরিচিত পরিবর্তনশীল রৈখিক সমীকরণ, ax=b। এর পরে, আমরা ফলাফল প্রদর্শন করি যাতে আমরা এর জন্য প্রিন্ট() স্টেটমেন্ট ব্যবহার করি এবং এতে 'x' অ্যারে পাস করি।

উদাহরণ 2:

এখন, NumPy ন্যূনতম স্কোয়ারের আরেকটি উদাহরণ বাস্তবায়ন শুরু করা যাক। আমরা সর্বদা প্রথমে লাইব্রেরি আমদানি করি যা আমরা NumPy প্রোগ্রামে ব্যবহার করি। প্রথমত, আমরা প্রোগ্রামে প্যাকেজটি পেতে 'আমদানি' কীওয়ার্ড লিখি। আমরা প্যাকেজের নামও লিখি যা 'numpy' এবং তারপরে তার উপনাম, 'np'। তারপর, আমরা প্রিন্ট() পদ্ধতিকে কল করি যাতে আমরা ব্যবহারকারীর আরও ভাল বোঝার জন্য সর্বনিম্ন স্কোয়ারের রিটেবল বার্তা প্রদর্শন করতে পারি।

তারপর, আমরা অ্যারে নাম 'x_axis' তৈরি করি এবং অ্যারেঞ্জ() ফাংশন ব্যবহার করে অ্যারে সংরক্ষণ করি। তারপর, আমরা print() পদ্ধতি ব্যবহার করে এটি প্রিন্ট করি। তারপর, আমরা আরেকটি অ্যারে নাম 'y_axis' তৈরি করি এবং এর মধ্যে অ্যারে সংরক্ষণ করি যা আমরা নিম্নলিখিত চিত্রে তৈরি করেছি।

উভয় অ্যারে তৈরি করার পরে, আমরা x_axis অ্যারেতে ones() পদ্ধতি প্রয়োগ করি এবং এটিকে “array_a” নামে আরেকটি অ্যারেতে সংরক্ষণ করি। এবং তারপর, আমরা এই অ্যারে মুদ্রণ. আমরা “arg_reg_line” নামে আরেকটি অ্যারে তৈরি করি এবং এটিতে একটি linalg.lstsq() ফাংশন প্রয়োগ করি। তারপর, আমরা এই ফাংশনে প্যারামিটারগুলি পাস করি যাতে আমরা দুটি অ্যারে বা পয়েন্টের মধ্যে সর্বনিম্ন বর্গ পেতে পারি। প্রথম প্যারামিটার হল যে আমরা array_a এর ট্রান্সপোজ নিই। দ্বিতীয় প্যারামিটারটি দ্বিতীয় বিন্দু যা y_axis। তারপর, আমাদের কাছে 'rcond' আছে যার মধ্যে 'কোনটিই' মান নেই। তারপর আমরা print() পদ্ধতি ব্যবহার করে অ্যারে প্রদর্শন করি।

আমদানি নম্র হিসাবে যেমন

ছাপা ( 'linalg.lstsq() ফাংশনের বাস্তবায়ন: ' )

x_axis = যেমন arange ( 0 , 10 )

ছাপা ( ' \n x অক্ষের মান হল: ' , 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 পাইপ্লট হিসাবে plt

plt পটভূমি ( x_axis , reg_line , 'আর-' )

plt পটভূমি ( x_axis , y_axis , 'ও' )

plt শিরোনাম ( 'লিনিয়ার রিগ্রেশন লাইন' )

plt xlabel ( 'এক্স-অক্ষ' )

plt ylabel ( 'Y-অক্ষ' )

plt দেখান ( )

এখানে previoulsy-বাস্তবায়িত উদাহরণের আউটপুট:

আমরা NumPy-এর আরেকটি প্যাকেজ আমদানি করি যা হল 'matplotlib' প্যাকেজ যা গ্রাফ প্লট করতে ব্যবহৃত হয়। তারপর, আমরা x_axis মান এবং y_axis_value প্লট করি। এর পরে, আমরা গ্রাফের শিরোনাম এবং লেবেল সেট করি। সবশেষে, আমরা show() পদ্ধতি ব্যবহার করে গ্রাফ প্রদর্শন করি।

এখানে প্রদত্ত উদাহরণের পছন্দসই গ্রাফ:

উপসংহার

এই নিবন্ধে, আমরা শিখেছি সর্বনিম্ন বর্গ কি এবং কিভাবে আমরা লিনিয়ার সমীকরণ ax=b ব্যবহার করে অজানা চলকের x এর linalg.lstsq() পেতে পারি। আমরা সর্বনিম্ন স্কোয়ার খুঁজে পেতে NumPy-এর একাধিক ফাংশন ব্যবহার করেছি এবং ব্যবহারকারীর আরও ভাল বোঝার জন্য বিস্তারিত ব্যাখ্যা সহ কিছু উদাহরণ প্রয়োগ করেছি।