حسن نظری
حسن نظری
خواندن ۲ دقیقه·۳ سال پیش

Under-fitting و Over-fitting در دنیای یادگیری ماشین

حسن نظری

می خواهیم بایاس و واریانس را برای یک تخمینگر در مجموعه داده بدست آوریم. مجموعه داده را به دو بخش آموزش و تست تقسیم می کنیم یعنی به ترتیب x_trainو y_train و x_test و y_test.

بایاس:

اگر به کمک مجموعه آموزش x_train یک تخمین روی داده ها انجام بدهیم یعنی مثلا رگرسیون انجام دهیم، در این صورت یک تعداد خروجی y_predicted بدست می آوریم. به اختلاف مقدار واقعی خروجی با مقدار خروجی محاسبه شده، بایاس گفته می شود.

Bias=y_predicted-y_train

به عبارت دیگر، به اختلاف بین مقدار واقعی و مقدار مورد انتظار(امید ریاضی) برای خروجی، بایاس گفته می شود یعنی

Bias= z-E(z*)

در اینجا مقدار مورد انتظار (امید ریاضی) و تابع چگالی احتمال از روی مجموعه آموزش بدست می آید و z*، تخمین z است.

واریانس:

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

Variance=(y_predicted-y_test)^2

زیر برازش (Underfitting):

وقتی خطای مدل روی داده آموزش زیاد باشد در این صورت گفته می شود که مدل زیربرازش است. این حالت معمولا به علت کم بودن تعداد داده آموزش یا نامناسب بودن روش تخمین اتفاق می افتد. اگر دقت در حالت آموزش کم باشد به دنبال آن در حالت تست هم دقت کم خواهد بود.

بیش برازش (Overfitting):

اگر خطای مدل در حالت آموزش کم باشد ولی در حالت تست خطای زیادی مشاهده شود در این صورت مدل بیش برازش شده است. این شرایط وقتی اتفاق می افتد که مقدار ابرمولفه (هایپرپارامتر) طوری تنظیم شده باشد که خطای آموزش بسیار کوچک شود.

مثال1:

خطای برای سه مدل Aو B و Cدر جدول زیر گزارش شده است:

همانطور که مشاهده می شود:

-در مدل اول خطا در آموزش و تست هر دو زیاد است پس در حالت زیر برازش قرار دارد.

-در مدل دوم خطا در آموزش و تست هر دو کم است پس در حالت خوبی قرار دارد.

-در مدل سوم خطا در آموزش خیلی کم و در تست زیاد است پس در حالت بیش برازش قرار دارد.

مثال2.

در رگرسیون باید یک خط یا منحنی را طوری بیابیم که با کمترین خطا از میان داده ها عبور کند. می توان خط یا منحنی را به کمک داده آموزش محاسبه کرد و با همان داده آموزش یا داده تست، دقت خط یا منحنی را محاسبه کرد.

منبع شکل: https://scikit-learn.org/stable/auto_examples/model_selection/plot_underfitting_overfitting.html
منبع شکل: https://scikit-learn.org/stable/auto_examples/model_selection/plot_underfitting_overfitting.html


در شکل بالا سه نمودار رسم شده است که در همه آن ها نمونه های داده با نقاط آبی رنگ مشخص شده اند و مدل واقعی نیز نارنجی رنگ است. سه منحنی رگرسیون رسم شده است که

-در نمودار سمت چپ یک خط (منحنی درجه 1) با بایاس و واریانس زیاد رسم شده است.

-در نمودار سمت وسطی یک منحنی درجه 4 با بایاس و واریانس کم مشاهده می گردد.

-در نمودار سمت راست یک منحنی درجه 15 با بایاس کم و واریانس زیاد نمایش داده شده است.

می توان دریافت که شکل دوم خطای کمتری را نشان می دهد و بهترین روش است.

رابطه بایاس و واریانس:

1-اگر از داده آموزش و یک تخمینگر ساده استفاده شود ===> بایاس زیاد

2-اگر از یک تخمینگر کمی پیچیده تر استفاده شود ===> بایاس و واریانس کم

3-اگر از یک تخمینگر پیچیده استفاده شود ===> بایاس کم و واریانس زیاد

توجه شود که در شکل زیر مربع بایاس با واریانس مقایسه شده است.

منبع شکل: https://medium.com/@prvnk10/bias-variance-tradeoff-ebf13adcea42
منبع شکل: https://medium.com/@prvnk10/bias-variance-tradeoff-ebf13adcea42


منبع:

https://towardsdatascience.com/bias-variance-and-how-they-are-related-to-underfitting-overfitting-4809aed98b79

بیش برازشکم برازشزیربرازشoverfitting
شاید از این پست‌ها خوشتان بیاید