درسِ آشنایی با ویژگیها را از قسمت دادهکاوی به یاد بیاورید. به صورت ساده شده این طور است که میخواهیم از یک سری ویژگی (طول و ارتفاع ماشین) به این نتیجه برسیم که این وسیله، پراید است یا اتوبوس. برای این کار که در واقع یک عملیاتِ طبقهبندی یا همان 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 میرسیم.
در کل این نوع کمینهسازی در دادهکاوی و طبقهبندی بسیار مرسوم است. مجموع خطاهای هر نقطه را نسبت به مدلِ ساخته شده محاسبه میکنیم و این خود، نوعی معیار برای خوب بودن مدل ساخته شده توسط الگوریتم میباشد.
سلام و عرض ادب
خیلی استفاده کردم پروژه بنده در مورد recommendation system ها بود و این پست کمکم کرد
تشکر
با سلام و احترام
بابت مطالی پربارتان از شما تشکر میکنم.
سپاس فراوان.
خیلی خیلی ممنون
داشتم با خودم فکر میکردم که همه چیز در مورد پروژه ام رو لز شما یاد گرفتم واقعا ممنونم، دوست دارم کلاس آموز متلب و داده کاوی و هوش مصنوعی بذارید شرکت کنم
انلاین باشه بهتر😊 واقعا اموزش شما به بهترین روش ممکنه
سلام ممنون از مطالب تون . منظور از RMSE چیست و مخفف چه کلماتی است؟
root mean square error
سلام
بسیار عالی توضیح داده شد. ممنون
سلام لطفا
یه توضیح در مورد مشتق گرفتن از فرمول میدید ؟!
تو نت اصلا این نیست
تو دبیرستان مشتق یه چیز دیگه بود ؟!
لطفا یه توضیح بدید
یا منبع خوب در این موضوع مشتق فرمول که گرفتید ممنون
با سلام
من چند تا ویدئو دیدم
که گفته شده بود .
A و b که عرض از مبدا و شیب هست رو اول باید
بصورت تصادفی انتخاب کنیم ؟
ولی شما با مشتق بدستش اووردید ؟!
درسته ؟!
حالا کدوم درسته؟!
بایدتصادفی بدیم؟!
یا اینکه مثل شما با استفاده از مشتق بدست بیاریم؟!
سلام
بله، یکی از راهها این هست که که اول تصادفی انتخاب میشه و بعد از اون میگردیم به دنبال مشتق صفر در محدودهی همان نقاط تصادفی
البته مبحث کمی عمیقتر هست و روشهای ترکیبی استفاده میشود
سلام و خدا قوت. خیلی ممنون از مطالب خوبتان 🙂
Root Mean Squared Error
سلام وقت شما بخیر .ببخشید استاد من فکر می کنم اشتباه تایپی صورت گرفته RMSE جذر میانگین مربع خطا است و MSE میانگین مربعات خطا
root-mean-square error :RMSE
MSE :Mean squared error
با تشکر از توضیحات خوبتون
سلام
بله ممنون اصلاح شد
سلام
در تنسورفلو زمانی که از mse استفاده میکنم، مقادیر loss function رو nan میده. اما با mae, msle و… مشکلی ندارم و میتونم کار کنم!
دلیل این مساله چیه؟ راه حل چیه؟
خیلی ممنون
عاااااااااااااااااااااالی بود
سلام مقدار a در مثال رگرسیون ۰/۶ به دست میاد نه ۳/۵ اشتباه محاسبه کردین.
سلام
این در واقع همان ۳ تقسیم بر ۵ یا سه پنجم است که همان ۰.۶ میشود
تصویر رو گویا نکشیدهام
درود و روز بخیر
منظور از فاصله در این فرمول فاصله عمودی نیست بلکه فاصله مقادیر y نقطه و خط به ازای x مشترک هستش
اگر صلاح دیدید اصلاح بفرمائید
سلام خیلی ساده و روان و خوب توضیح دادید ممنون
عرض سلام
متشکرم از مطالب مفیدتون
فرض کنید رابطه ای داریم که نتایج یک آمایش را پیشبینی می کند. سپس آزمایش را انجام میدهیم. با تغییر یکی از پارامترها آزمایش چند بار تکرار می شود. نتیجه اینگونه است که مقادیر بدست آمده از آزمایشگاه اندکی با مقادیر پیشبینی شده از رابطه متفاوت است. سوال اینکه چگونه و با چه روش آماری این اختلاف را بررسی کنیم؟ می خواهیم ببینیم که این رابطه چقدر در پیشبینی مقادیر موفق بوده است.