آشنایی با رگرسیون و خطای RMSE

مدرس: مسعود کاویانی

درسِ آشنایی با ویژگی‌ها را از قسمت داده‌کاوی به یاد بیاورید. به صورت ساده شده این طور است که می‌خواهیم از یک سری ویژگی (طول و ارتفاع ماشین) به این نتیجه برسیم که این وسیله،‌ پراید است یا اتوبوس. برای این کار که در واقع یک عملیاتِ طبقه‌بندی یا همان classification است، یک مدل توسط الگوریتم ایجاد می‌کنیم که این مدل بتواند با توجه به ویژگی‌ها، تفاوت بین پراید و اتوبوس را تشخیص دهد. به این دست از مسائل طبقه‌بندی می‌گویند که با آن در درس طبقه‌بندی آشنا شدید. اما مسئله‌ای که امروز می‌خواهیم در مورد آن بحث کنیم، مسئله‌ای است که به آن رگرسیون یا regression می‌گویند.

فرض کنید چهار نقطه در فضا دارید (که هر کدام یک نمونه از داده‌های آموزشی هستند). مانند شکل زیر:

این شکل را بدین صورت برای خود در نظر بگیرید که ما می‌خواهیم از روی اعدادِ محور X، اعدادِ محور Y را به دست بیاوریم. مثلا محور X می‌تواند IQ برای یک شخص باشد و محور Y معدل لیسانس این شخص. یعنی می‌خواهیم ببینیم آیا ارتباطی بین IQ برای یک شخص با معدل لیسانس او برقرار است یا خیر؟ یعنی برای مثال، آیا با زیاد شدنِ IO، معدل لیسانس هم زیاد می‌شود یا خیر؟

حال فرض کنید ما می‌خواهیم یک خط رسم کنیم به گونه‌ای که این خط، نماینده‌ای از این نقاط باشد. منظور از نماینده‌ی این نقاط این است که ما بدون داشتنِ این نقاط و فقط از روی خط، بتوانیم مکان تقریبیِ نقاط را حدس بزنیم. یعنی آیا خط طوری رسم شده‌است که با گرفتنِ مقدارِ محور X (مثلا IQ یک شخص است)، بتواند معدلش را تا حدودی حدس بزند یا خیر؟ در کل به این دست از مسائل، مسئله‌های رگرسیون می‌گویند. این مسايل شبیه مسئله‌های طبقه‌بندی است با این تفاوت که مقداری که الگوریتم قرار است پیش‌بینی کند، یک مقدارِ پیوسته است (مانند اینجا که مقدارِ پیوسته معدلِ یک شخص است).

کارِ اصلیِ الگوریتمِ رگرسیون در اینجا پیدا کردن یک خط است به گونه‌ای که نسبت به نقاط، بهترین موقعیت را داشته باشد. منظور از بهترینِ موقعیت تعاریف مختلفی دارد ولی ما اینجا فرض می‌کنیم، بهترین موقعیت، خطی است که به تمامی نقاط کمترین فاصله را داشته باشد. به بیانی دیگر بهترین موقعیت یعنی کمترین RMSE.

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

برای درکِ RMSE  فرمول خط را به یاد بیاورید.

f (x) = a * x + b

در واقع ما میخو‌اهیم پارامتر‌های این خط یعنی همان a و b را یاد بگیریم (a شیب خط و b عرض از مبدا بود – اگر یادتان باشد) به گونه‌ای که کمترین RMSE را داشته باشد. بگذارید مسئله را با همان نقاط بالا حل کنیم. چهار نقطه‌ی بالا را در نظر بگیرید. می‌خواهیم یک خط رسم کنیم و می‌دانم که از ریاضیات خوشتان نمی‌آید (مثل خیلی‌های دیگر) اما به نقاط نگاه کنید و سعی کنید شکل زیر را درک کنید:

فرض کنید یک خط در بین این چهار نقطه رسم می‌کنیم. طبیعتاً این خط فرضی با هر کدام از این چهار نقطه یک فاصله‌ی مشخص دارد. فرمول ساده‌ای است. فاصله‌ی هر نقطه را تا خط محاسبه کرده، سپس به توان ۲ می‌رسانیم. حال تمامیِ این فاصله‌های به توانِ ۲ رسیده را با هم جمع می‌کنیم. اگر بخواهیم شهودی بگوییم، هر نقطه نسبت به خط رگرسیون یک خطا (مقداری فاصله) دارد که به توان ۲ رسیده است. ما از فرمول مشتق گرفتیم و برابر صفر قرار دادیم تا بتوانیم دو نقطه a و b را به دست بیاوریم (این یک راه ساده است و اگر نتوانستید درک کنید لطفا ادامه دهید، برای الان زیاد مهم نیست).

حالا اگر از این مقادیر میانگین بگیریم یعنی در مثال بالا فرمول را تقسیم بر ۴ کنیم، میانگین مجموع مربعات خطا یا همان MSE به دست می‌آید. همان طور که می‌توانید حدس بزنید، هر چقدر این مقدار کمتر باشد، خط ما خط بهتری است. یعنی خطی است که نسبت به این چهار نقطه کمترین فاصله را دارد. خطی مانند خطِ زیر:

هر خط دیگری به جز این خط، مقدار میانگینِ خطای بیشتری را ایجاد می‌کند. می‌توان گفت خطِ کشیده شده در تصویر، خطی است که مقدارِ خطاها در آن، نسبت به نمونه‌های ما یعنی نقاط سبز رنگ، کمینه هستند. معیار RMSE هم به معنای جذر میانگین مربعات خطا است، یعنی با جذر گرفتن از MSE به RMSE می‌رسیم.

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

منابع این بحث و اطلاعات بیشتر

» فصل ۱۲کتاب Mining Of Massive Datasets » وب سایت theanalysisfactor

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

21 دیدگاه دربارهٔ «آشنایی با رگرسیون و خطای RMSE»

  1. سلام و عرض ادب

    خیلی استفاده کردم پروژه بنده در مورد recommendation system ها بود و این پست کمکم کرد

    تشکر

  2. داشتم با خودم فکر میکردم که همه چیز در مورد پروژه ام رو لز شما یاد گرفتم واقعا ممنونم، دوست دارم کلاس آموز متلب و داده کاوی و هوش مصنوعی بذارید شرکت کنم
    انلاین باشه بهتر😊 واقعا اموزش شما به بهترین روش ممکنه

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

  4. با سلام
    من چند تا ویدئو دیدم
    که گفته شده بود .
    A و b که عرض از مبدا و شیب هست رو اول باید
    بصورت تصادفی انتخاب کنیم ؟
    ولی شما با مشتق بدستش اووردید ؟!
    درسته ؟!
    حالا کدوم درسته؟!
    بایدتصادفی بدیم؟!
    یا اینکه مثل شما با استفاده از مشتق بدست بیاریم؟!

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

  5. سلام وقت شما بخیر .ببخشید استاد من فکر می کنم اشتباه تایپی صورت گرفته RMSE جذر میانگین مربع خطا است و MSE میانگین مربعات خطا
    root-mean-square error :RMSE
    MSE :Mean squared error

    با تشکر از توضیحات خوبتون

  6. سلام
    در تنسورفلو زمانی که از mse استفاده میکنم، مقادیر loss function رو nan میده. اما با mae, msle و… مشکلی ندارم و میتونم کار کنم!
    دلیل این مساله چیه؟ راه حل چیه؟
    خیلی ممنون

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

  8. عرض سلام
    متشکرم از مطالب مفیدتون
    فرض کنید رابطه ای داریم که نتایج یک آمایش را پیشبینی می کند. سپس آزمایش را انجام میدهیم. با تغییر یکی از پارامترها آزمایش چند بار تکرار می شود. نتیجه اینگونه است که مقادیر بدست آمده از آزمایشگاه اندکی با مقادیر پیشبینی شده از رابطه متفاوت است. سوال اینکه چگونه و با چه روش آماری این اختلاف را بررسی کنیم؟ می خواهیم ببینیم که این رابطه چقدر در پیشبینی مقادیر موفق بوده است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *