رگرسیون خطی یک روش بسیار ساده است که کاربرد آن در بسیاری از مسائل اثبات شده. در این آموزش قصد داریم تا طریقه کارکرد رگرسیون ساده خطی را قدم به قدم باهم بررسی کنیم.
دیتاسِتی که در این آموزش از آن استفاده خواهیم کرد کاملا ساختگی است :
مؤلفه ی x متغیر ورودی و مؤلفه ی y متغیر خروجی ما هستند که سعی در پیش بینی کردن آن داریم. نمودار پراکندگی داده ها را در زیر میبینید :
همانطور که مشاهده میکنید رابطه ی بین x و y به نظر میرسد که خطی هست و ما میتوانیم بصورت احتمالی خطِ موربی را از سمت چپ پایین به سمت راست بالای نمودار رسم کنیم تا با استفاده از آن ، رابطه ی بین داده ها مشخص شود.
زمانی که مؤلفه ی ورودی (x) مؤلفه ی واحدی هست و میخواهیم که از رگرسیون خطی استفاده کنیم ؛ این نوع رگرسیون ، رگرسیون خطی ساده نامیده میشود ولی زمانی که مؤلفه های ورودی (x1, x2, x3, x4, ...) مؤلفه های چندگانه باشند ، رگرسیون خطی چندگانه نامیده میشود. روش کارکرد رگرسیون خطی ساده متفاوت و ساده تر از رگرسیون خطی چندگانه است و در این آموزش قصد داریم که مدل رگرسیون خطی ساده ای را بر اساس داده های آموزشی بسازیم و سپس پیشبینی هایی را روی داده های آموزشیمان انجام دهیم و بررسی کنیم که مدلِ به دست آمده ، رابطه ی بین داده ها را چقدر خوب یاد گرفته است. مدل رگرسیون خطی ساده بصورت زیر تعریف میشود :
معادله ی بالا مربوط به یک خط راست میباشد که در آن ، y متغیر خروجی ای است که قصد پیش بینی کردن آن را داریم ، x متغیر ورودی ای است که مقدار آنرا میدانیم و B0 , B1 ضرایب معادله هستند که باید مقدار آنها را تخمین بزنیم. B0 همان عرض از مبدا و B1 نیز شیب خط میباشد.
هدف ، پیدا کردن بهترین مقادیر تخمین زده شده برای ضرایب معادله به منظور کمینه کردن خطاهای حاصل از پیش بینی متغیر y از روی x می باشد. ما میتوانیم در رگرسیون ساده خطی از روی داده هایی که داریم بصورت مستقیم مقدار ضرایب را تخمین بزنیم. مقدار B1 از معادله ی زیر به دست می آید :
در معادله ی بالا، mean ، برابر مقدار میانگین مقادیر هر مؤلفه از دیتاسِت است. xi و yi به این نکته اشاره دارند که باید این محاسبات را برای همه ی مقادیر داخل دیتاسِت تکرار کنیم. بعد از به دست آوردن مقدار B1 ، مقدار B0 با استفاده از رابطه ی زیر به دست می آید :
از بالاترین قسمت معادله شروع خواهیم کرد(صورت کسر). در ابتدا باید مقدار میانگین را برای مؤلفه های x و y محاسبه کنیم. مقدار میانگین با استفاده از معادله ی زیر به دست می آید :
در فرمول بالا ، مقدار n برابر تعداد هر یک از مؤلفه های x یا y است (که در این مثال برابر با عدد ۵ می باشد).
مقدار میانگین x برابر است با 3 و مقدار میانگین y برابر است با 2.8
حال باید مقدار خطای هر متغیر از مقدار میانگین را محاسبه کنیم ؛ برای مؤلفه x :
و برای مؤلفه ی y :
حال قسمت هایی را برای محاسبه ی صورت کسر در اختیار داریم. تنها کاری که باید انجام شود این است که مقادیر باقیمانده ی تفاضل هر مقدار از هر مؤلفه از مقدار میانگین آنرا بصورت متناظر در هم ضرب کرده و سپس حاصل جمع مقادیر مؤلفه ی جدید(مؤلفه ی حاصلضرب ها) را محاسبه کنیم :
حاصل جمع مقادیر ستون آخر که همان صورت کسر است ، برابر عدد 8 می باشد. حال نوبت به محاسبه ی مقدار مخرج کسر میرسد. مخرج کسر را میتوان بصورت زیر تشریح کرد :
مجموعِ مربعاتِ تفاضلاتِ هر مقداری از مؤلفه ی x از مقدار میانگین
از آنجایی که قبلا مقدار (x - mean(x را برای هر مقدار از x محاسبه کرده ایم ، تنها کار لازم برای انجام دادن ، به توان ۲ رساندن این مقادیر است :
با محاسبه ی حاصل جمع این مربعات ، مخرج کسر برابر عدد 10 میشود .حال میتوانیم مقدار شیب را محاسبه کنیم :
برای محاسبه ی مقدار عرض از مبدأ از رابطه ی زیر استفاده می کنیم :
حال که ضرایب معادله را به دست آورده ایم ،
قصد داریم تا با پیش بینی کردن برای داده های آموزشی ، مدل به دست آمده را امتحان کنیم :
همچنین ما میتوانیم مقادیر بیش بینی شده را بصورت یک خط در کنار داده های آموزشی در قالب نمودار نمایش دهیم :
ما می توانیم برای داده های پیش بینی شده ، مقدار خطا را محاسبه کنیم که با نام خطای جذر میانگین مربعات شناخته میشود.
در فرمول بالا ، pi برابر مقادیر پیش بینی شده و yi برابر مقادیر اولیه در مؤلفه ی y هستند؛ چون ما مقدار خطا را باید برای همه ی مقادیر پیش بینی شده محاسبه کنیم. در ابتدا باید مقدار تفاضل هر داده ی پیش بینی شده توسط مدل را از داده ی واقعی به دست آوریم :
به سادگی می توانیم مربع این مقادیر را به دست آوریم:
مجموع این داده ها برابر با 2.4 واحد است که اگر بر تعداد داده ها تقسیم شود ، مقدار خطای جذر میانگین مربعات به دست می آید :
معنی خطای بالا این است که هر پیش بینی انجام شده بطور متوسط 0.692 واحد اشتباه است.
این هم پیاده سازی انجام شده برای این آموزش در زبان پایتون :
امیدوارم مفید بوده باشه
موفق باشید :)