بررسی معیارهای ارزیابی رگرسیون در پایتون
از کتابخانه Numpy برای پیادهسازی معیارها و از کتابخانه Scikit-Learn برای استفاده از توابع آماده استفاده خواهیم کرد.
میانگین مربعات خطا یا MSE
«میانگین مربعات خطا» (Mean Squared Error | MSE) یکی از پرکاربردترین معیارها است که هم در آموزش مدلها و هم در مقایسه مدلها استفاده میشود. این معیار دارای بُعد است، به همین دلیل به عنوان گزارش نهایی در مسائل رگرسیون مناسب نیست.
برای محاسبه میانگین مربعات خطا، به شکل زیر عمل میکنیم:
این معیار مشتق پذیر بوده و با فرض یک مدل خطی، به شکل زیر میتوان از آن مشتق گرفت:
علاوه بر اینکه میتوان از این روابط در آموزش مدلها استفاده کرد، برابر قرار دادن این دو عبارت با صفر و حل کردن دستگاه معادلات حاصل نیز فرمولهای رگرسیون خطی را اثبات میکند.
برای پیادهسازی میانگین مربعات خطا میتوان به شکل زیر عمل کرد:
از توابع آماده نیز میتوان به شکل زیر استفاده کرد:
جذر میانگین مربعات خطا RMSE
«معیار جذر میانگین مربعات خطا» (Root Mean Squared Error | RMSE) با استفاده از رابطه زیر از میانگین مربعات خطا محاسبه میشود:
دلیل استفاده از جذر میانگین مربعات خطا، یکسان بودن بُعد و مقیاس آن با ویژگی هدف است. برای مثال، اگر یک مدل برای پیشبینی وزن افراد برحسب Kg ایجاد کرده باشیم، واحد میانگین مربعات خطا kg2 خواهد بود، درحالی که که واحد جذر مربعات خطا Kg است. این معیار اغلب در گزارش نتایج استفاده میشود و به عنوان تابع هزینه استفاده نمیشود.
برای پیادهسازی جذر میانگین مربعات خطا میتوان نوشت:
یا با استفاده از توابع آماده این کار انجام میگیرد:
جذر مربعات خطای نرمالشده NRMSE
«جذر مربعات خطای نرمالشده» (Normalized Root Mean Squared Error | NRMSE) با استفاده از رابطه زیر محاسبه میشود:
این معیار، حاصل تقسیم جذر میانگین مربعات خطا بر بازه ویژگی هدف است، به همین دلیل عددی بدون بُعد و واحد بوده و برای گزارش بسیار مناسب است.
میتوان این معیار را به صورت درصدی نیز بیان کرد.
برای پیادهسازی خواهیم داشت:
یا با استفاده از توابع آماده این کار انجام میگیرد:
میانگین قدرمطلق خطا MAE
«میانگین قدرمطلق خطا» (Mean Absolute Error | MAE) به جای به توان 2 رساندن خطاها، از تابع قدرمطلق استفاده میکند و به صورت زیر محاسبه میشود:
با توجه به اینکه مقادیر به توان نرسیدهاند، واحد میانگین قدرمطلق خطا با ویژگی هدف یکسان خواهد بود.
این معیار با توجه به اینکه از تابع قدرمطلق استفاده میکند، در شرایطی مشتقپذیر نبوده و میتواند در بهینهسازیهای وابسته به گرادیان مشکلساز باشد.
مشکل دیگر این معیار، ضعیف نشدن گرادیان با نزدیک شدن به e=0 است که باعث مشکلاتی در بهینهسازی و بعضا واگرایی میشود.
در صورتی که در مجموعه داده مقادیر پرت وجود داشته باشد که از صحت آنها اطمینان داریم میانگین مربعات خطا مناسب است، اما در شرایطی که بخواهیم مدل ما نسبت به دادههای پرت پایدارتر باشد، میانگین قدرمطلق خطا گزینه مناسبی است. رفتار این معیار نسبت به خطای هر داده، به صورت قدرمطلقی است
به این ترتیب مشتقناپذیری در e=0 و شیب ثابت کاملاً مشهود است. از این معیار میتوان برای مقایسه مدلها و همچین گزارش نتایج استفاده کرد. برای پیادهسازی میانگین قدرمطلق خطا مینویسیم:
یا با استفاده از توابع آماده این کار انجام میگیرد:
میانگین درصد قدرمطلق خطا MAPE
«میانگین درصد قدرمطلق خطا» (Mean Absolute Percentage Error | MAPE) مشابه میانگین قدرمطلق خطا است، اما به جای خطا، از خطای نسبی استفاده شده است:
به این ترتیب، معیاری بدون واحد به دست خواهد آمد که برای گزارش نتایج مناسب است.
این معیار نیز مشکلات میانگین مربعات خطا را دارد. مشکل دیگری که در رابطه با میانگین درصد قدرمطلق خطا وجود دارد، احتمال وجود مقادیر بسیار نزدیک به 0 در داده است. در این شرایط، کسر عبارت بسیار کوچک شده و تاثیر شدیدی بر معیار خواهد گزاشت.
به این ترتیب مشاهده میکنیم که برای داده دوم قدرمطلق خطای نسبی عدد بسیار بزرگی نسبت به سایر دادهها است که باعث اثرگذاری شدید آن روی معیار میشود. به همین دلیل، در صورت وجود مقادیر نزدیک به 0 در مجموعه داده، معیار میانگین درصد قدرمطلق خطا ترجیح داده نمیشود.
این معیار با خطای نسبی هر داده رابطه قدرمطلقی دارد.
برای پیادهسازی این معیار، مینویسیم:
یا با استفاده از توابع آماده این کار انجام میگیرد:
تابع آماده استفاده شده در کد بالا عددی از 0 تا 1 در خروجی تولید میکند و برای تبدیل آن به درصد با ضرب در 100 شود.
ضریب تعیین یا امتیاز R2
«ضریب تعیین امتیاز» (Coefficient of Determination) برخلاف 5 معیار قبلی، با افزایش، دقت بالای مدل را نشان میدهد. برای محاسبه آن به شکل زیر عمل میکنیم:
این معیار همواره عددی کوچکتر از 1 است. اگر مدلی همواره میانگین ویژگی هدف را در خروجی تولید کند، مقدار این معیار برابر 0 خواهد بود. ضریب تعیین معمولاً به صورت درصد بیان میشود. از ضریب تعیین تنها برای مقایسه مدلها و گزارش نتایج استفاده میشود. با توجه به اینکه واریانس مجموعه داده عددی ثابت است، با افزایش میانگین مربعات خطا، ضریب تعیین همواره کاهش مییابد.
برای پیادهسازی ضریب تعیین مینویسیم:
یا با استفاده از توابع آماده خواهیم داشت:
جمعبندی ارزیابی رگرسیون در پایتون
در این آموزش، معیارهای پرکاربرد در مسائل رگرسیون بررسی و پیادهسازی شدند. برای مطالعه بیشتر میتوان معیارهای جدیدتر مانند AIC، معیارهای اصلاحشده مانند Adjusted R2، معیارهای ترکیبی، معیارهای دارای Threshold و همبستگی بین معیارها را مورد بررسی قرار داد.
جواد یوسفی
برنامه نویس فرانت اند
دیدگاه کاربران
ثبت دیدگاه
برای ثبت نظر، ابتدا وارد شوید.
هیچ نظری ثبت نشده! اولین نفری باش که نظرشو ثبت میکنه!