نمايش پست تنها
قديمي ۰۵-۱۶-۱۳۹۱, ۰۹:۰۹ بعد از ظهر   #4 (لینک دائم)
mahdiii
Active users
 
آواتار mahdiii
 
تاريخ عضويت: اسفند ۱۳۸۸
محل سكونت: مشهد
پست ها: 355
تشكرها: 27
167 تشكر در 131 پست
My Mood: Khoshhal
پيش فرض

نه فکر نکنم. چون رگرسیون خطی تنها می تونه خط برازش یا همون فیت کنه. بنابراین کل داده ها با یک خط جایگزین میشه. همچنین اگه مسیرو به چند زیر مسیر تقسیم کنی و برای هرکدومش این کارو بکنی، مسیرت تبدیل میشه به چند خط شکسته که مناسب نیست چرا که انحناهاشو از دست میده و فرم بدی میگیره. می تونی از مدلهای پیچیده تر استفاده کنی. حتما تو c++ هم کتابخونه هایی برای هموارسازی وجود داره مثلا opencv . یه چندتا اسم توابع هم گذاشتم که می تونی از اونا استفاده کنی ولی اگه می خوای کدشو خودت بنویسی همون طوری که گفتم می تونی برای هر مختصات مسیرت بر اساس یه پنجره، از مختصات مسیر اطرافش استفاده کنی و میانگین گیری کنی. یعنی برای یه نقطه که مثلا در مختصات 20و30 قرار گرفته روی مسیرت بخوای مختصاتشو هموار کنی می تونی از همسایه هاش استفاده کنی که مثلا 20 نقطه در مسیر که نزدیکترین نقاط به این نقطه 20و30 است به همراه خود این نقطه و ازشون میانگین گیری کنی و نتیجه رو بجای 20و30 بگذاری. که مثلا میشه 21و32 و این کارو برای تک تک نقاط انجام بدی. هر چه اندازه پنجرت بزرگتر باشه نقاط بیشتر به هم شبیه میشند و مسیرت بیشتر هموار میشه. می تونی عمل میانگین گیری رو به صورت معمولی انجام بدی یعنی جمع نقاط تقسیم بر تعدادش یا اونو وابسته به فاصله نقاط از نقطه موردنظرت که می خوای اونو تغییر بدی بکنی. مثلا نقاطی که دورتر قرار گرفته اند نسبت به نقطه موردنظرت وزن کمتری در محاسبه میانگین داشته باشند و خود نقطه موردنظرت بیشترین وزنو داشته باشه که جواب بهتری نسبت به روش معمولی میده. این معیارو می تونی به صورت تابع exp تعریف کنی. یه سرچی بزن gaussian smoothing
mahdiii آفلاين است   پاسخ با نقل قول