Linear Regression

به نام خدا



رگرسیون خطی (Linear Regression)‌ : رگرسیون خطی یک روش آماری است که برای مدل سازی رابطه بین یک متغیر وابسته و یک یا چند متغیر مستقل استفاده می شود. یک رابطه خطی بین متغیرها را فرض می کند و هدف آن یافتن بهترین خط برای توصیف این رابطه است. بهترین خط با معادله y = mx b نشان داده می شود، که در آن y متغیر وابسته، x متغیر مستقل، m شیب خط، و b عرض از مبدا است. رگرسیون خطی یک ابزار همه کاره با کاربردهای گسترده در زمینه های مختلف است که امکان پیش بینی و درک روابط متغیرها را فراهم می کند.

towardsdatascience
towardsdatascience




پیاده سازی رگرسیون خطی:

Linear Regression
Linear Regression


توضیحات کد:

ایمپورت کردن NumPy

کد با وارد کردن کتابخانه numpy شروع می شود، که یک کتابخانه محاسبات عددی است که طیف وسیعی از توابع ریاضی و ساختارهای داده را ارائه می دهد. این کتابخانه برای انجام محاسبات رگرسیون خطی ضروری است.

تعریف کلاس LinearRegression

کلاس LinearRegression پیاده سازی رگرسیون خطی را در بر می گیرد. دارای سه ویژگی است:

  1. learning_rate: این پارامتر اندازه گام استفاده شده در نزول گرادیان برای به روزرسانی وزن ها و سوگیری در طول فرآیند آموزش را نشان می دهد.
  2. n_iterations: این پارامتر تعداد تکرارهای مورد نیاز برای انجام نزول گرادیان را مشخص می کند. تعداد بیشتر تکرارها به طور کلی به همگرایی بهتر منجر می شود اما ممکن است زمان محاسبه را نیز افزایش دهد.
  3. weights: این ویژگی وزن های آموخته شده برای هر ویژگی را ذخیره می کند.
  4. bias: این ویژگی اصطلاح سوگیری آموخته شده را ذخیره می کند.

ایجاد شیء LinearRegression

متد __init__ یک شیء LinearRegression ایجاد می کند و ویژگی های آن را مقداردهی اولیه می کند. دو پارامتر اختیاری دارد:

  1. learning_rate: مقدار پیش فرض 0.01 است که یک نرخ یادگیری معمولی برای نزول گرادیان است.
  2. n_iterations: مقدار پیش فرض 1000 است که تعداد معقولی برای تکرارهای بسیاری از مجموعه داده ها است.

مناسب کردن مدل رگرسیون خطی

متد fit مدل رگرسیون خطی را با استفاده از نزول گرادیان آموزش می دهد. دو آرگومان می گیرد:

  1. X: این مجموعه داده آموزشی نمایش داده شده به عنوان یک آرایه NumPy از ویژگی ها است. هر ردیف یک مشاهده فردی را نشان می دهد و هر ستون یک ویژگی را نشان می دهد.
  2. y: این متغیر هدف نمایش داده شده به عنوان یک آرایه NumPy از مقادیر مربوطه برای هر مشاهده در X است.

متد fit مراحل زیر را انجام می دهد:

1. مقداردهی اولیه وزن ها و سوگیری: وزن ها را به صفر و سوگیری را به صفر مقداردهی اولیه می کند.

2. نزول گرادیان: برای تعداد مشخص شده تکرارها (n_iterations) تکرار می شود. در هر تکرار، موارد زیر را انجام می دهد:

1. پیش بینی: مقادیر هدف را با استفاده از وزن ها و سوگیری فعلی پیش بینی می کند.

2. محاسبه خطا: خطا بین مقادیر پیش بینی شده و مقادیر هدف واقعی را محاسبه می کند.

3. بروزرسانی وزن ها و سوگیری: وزن ها و سوگیری را با استفاده از الگوریتم نزول گرادیان به روز می کند. الگوریتم نزول گرادیان وزن ها و سوگیری را در جهت شیب منفی تابع خطا تنظیم می کند و در نتیجه خطا را به حداقل می رساند.

پیش بینی نقاط داده جدید

متد predict یک آرگومان واحد، X را می پذیرد که نشان دهنده یک مجموعه داده جدید از ویژگی هایی است که می خواهید مقادیر هدف را برای آنها پیش بینی کنید. ویژگی ها را در وزن های آموخته شده ضرب می کند، سوگیری را اضافه می کند و مقادیر هدف پیش بینی شده را برمی گرداند.

ارزیابی عملکرد مدل

متد evaluate دو آرگومان می گیرد: y_true (مقادیر هدف واقعی) و y_pred (مقادیر هدف پیش بینی شده). میانگین خطای مربعی (MSE) را بین مقادیر واقعی و پیش بینی شده محاسبه می کند و آن را در کنسول چاپ می کند. MSE یک معیار رایج برای سنجش عملکرد مدل در رگرسیون خطی است. MSE کمتر نشان دهنده عملکرد بهتر مدل است.