Either try as much as you wish or wish as much as you try
Linear Regression
به نام خدا
رگرسیون خطی (Linear Regression) : رگرسیون خطی یک روش آماری است که برای مدل سازی رابطه بین یک متغیر وابسته و یک یا چند متغیر مستقل استفاده می شود. یک رابطه خطی بین متغیرها را فرض می کند و هدف آن یافتن بهترین خط برای توصیف این رابطه است. بهترین خط با معادله y = mx b نشان داده می شود، که در آن y متغیر وابسته، x متغیر مستقل، m شیب خط، و b عرض از مبدا است. رگرسیون خطی یک ابزار همه کاره با کاربردهای گسترده در زمینه های مختلف است که امکان پیش بینی و درک روابط متغیرها را فراهم می کند.
پیاده سازی رگرسیون خطی:
توضیحات کد:
ایمپورت کردن NumPy
کد با وارد کردن کتابخانه numpy
شروع می شود، که یک کتابخانه محاسبات عددی است که طیف وسیعی از توابع ریاضی و ساختارهای داده را ارائه می دهد. این کتابخانه برای انجام محاسبات رگرسیون خطی ضروری است.
تعریف کلاس LinearRegression
کلاس LinearRegression
پیاده سازی رگرسیون خطی را در بر می گیرد. دارای سه ویژگی است:
learning_rate
: این پارامتر اندازه گام استفاده شده در نزول گرادیان برای به روزرسانی وزن ها و سوگیری در طول فرآیند آموزش را نشان می دهد.n_iterations
: این پارامتر تعداد تکرارهای مورد نیاز برای انجام نزول گرادیان را مشخص می کند. تعداد بیشتر تکرارها به طور کلی به همگرایی بهتر منجر می شود اما ممکن است زمان محاسبه را نیز افزایش دهد.weights
: این ویژگی وزن های آموخته شده برای هر ویژگی را ذخیره می کند.bias
: این ویژگی اصطلاح سوگیری آموخته شده را ذخیره می کند.
ایجاد شیء LinearRegression
متد __init__
یک شیء LinearRegression
ایجاد می کند و ویژگی های آن را مقداردهی اولیه می کند. دو پارامتر اختیاری دارد:
learning_rate
: مقدار پیش فرض 0.01 است که یک نرخ یادگیری معمولی برای نزول گرادیان است.n_iterations
: مقدار پیش فرض 1000 است که تعداد معقولی برای تکرارهای بسیاری از مجموعه داده ها است.
مناسب کردن مدل رگرسیون خطی
متد fit
مدل رگرسیون خطی را با استفاده از نزول گرادیان آموزش می دهد. دو آرگومان می گیرد:
X
: این مجموعه داده آموزشی نمایش داده شده به عنوان یک آرایه NumPy از ویژگی ها است. هر ردیف یک مشاهده فردی را نشان می دهد و هر ستون یک ویژگی را نشان می دهد.y
: این متغیر هدف نمایش داده شده به عنوان یک آرایه NumPy از مقادیر مربوطه برای هر مشاهده درX
است.
متد fit
مراحل زیر را انجام می دهد:
1. مقداردهی اولیه وزن ها و سوگیری: وزن ها را به صفر و سوگیری را به صفر مقداردهی اولیه می کند.
2. نزول گرادیان: برای تعداد مشخص شده تکرارها (n_iterations) تکرار می شود. در هر تکرار، موارد زیر را انجام می دهد:
1. پیش بینی: مقادیر هدف را با استفاده از وزن ها و سوگیری فعلی پیش بینی می کند.
2. محاسبه خطا: خطا بین مقادیر پیش بینی شده و مقادیر هدف واقعی را محاسبه می کند.
3. بروزرسانی وزن ها و سوگیری: وزن ها و سوگیری را با استفاده از الگوریتم نزول گرادیان به روز می کند. الگوریتم نزول گرادیان وزن ها و سوگیری را در جهت شیب منفی تابع خطا تنظیم می کند و در نتیجه خطا را به حداقل می رساند.
پیش بینی نقاط داده جدید
متد predict
یک آرگومان واحد، X
را می پذیرد که نشان دهنده یک مجموعه داده جدید از ویژگی هایی است که می خواهید مقادیر هدف را برای آنها پیش بینی کنید. ویژگی ها را در وزن های آموخته شده ضرب می کند، سوگیری را اضافه می کند و مقادیر هدف پیش بینی شده را برمی گرداند.
ارزیابی عملکرد مدل
متد evaluate
دو آرگومان می گیرد: y_true
(مقادیر هدف واقعی) و y_pred
(مقادیر هدف پیش بینی شده). میانگین خطای مربعی (MSE) را بین مقادیر واقعی و پیش بینی شده محاسبه می کند و آن را در کنسول چاپ می کند. MSE یک معیار رایج برای سنجش عملکرد مدل در رگرسیون خطی است. MSE کمتر نشان دهنده عملکرد بهتر مدل است.
مطلبی دیگر از این انتشارات
۲۰ ایده برای پیاده سازی با یادگیری ماشین برای مبتدی ها
مطلبی دیگر از این انتشارات
پیشبینی وضعیت ترافیک به کمک یادگیری ماشین
مطلبی دیگر از این انتشارات
ریاضیات پشت رگرسیون خطی(Linear Regression)