0
09922334435

جنگل تصادفی(رگرسیون) : چه زمانی به خوبی عمل نمی‌کند و چرا؟

تفاوت بین جنگل تصادفی و XGBoost چیست؟

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

 

موارد زیر را پوشش خواهیم داد:

Random Forest Regression vs Linear Regression

مشکل برون یابی رگرسیون تصادفی جنگل

راه حل های بالقوه

آیا باید از جنگل تصادفی برای رگرسیون استفاده کرد؟

فهرست مطالب

Random Forest Regression vs Linear Regression

رگرسیون جنگل تصادفی یک الگوریتم قدرتمند است، با این حال، سؤال این است که آیا باید از آن برای رگرسیون استفاده کرد؟

 

چرا به جای آن از رگرسیون خطی استفاده نمی کنید؟ تابع در یک رگرسیون خطی به راحتی می تواند به صورت y=mx + c نوشته شود در حالی که یک تابع در یک رگرسیون جنگل تصادفی پیچیده مانند یک جعبه سیاه به نظر می رسد که به راحتی نمی توان آن را به عنوان یک تابع نشان داد.

 

به طور کلی، جنگل‌ تصادفی نتایج بهتری تولید می‌کند، روی دیتاست‌های بزرگ به خوبی کار می‌کند و با ایجاد تخمین‌هایی برای آن‌ها می‌توانند با داده‌های از دست رفته کار کنند.

 

با این حال، یک چالش بزرگ را ایجاد می‌کند و آن این است که نمی‌تواند داده‌های غیرقابل مشاهده را برون‌یابی کنند.

رگرسیون درخت تصمیم

درخت تصمیم برای به دست آوردن روابط غیر خطی بین ویژگی های ورودی و متغیر هدف عالی هست.

عملکرد درونی یک درخت تصمیم را می توان به عنوان یک دسته از  if-else در نظر گرفت.

از همان بالا با یک گره شروع می شود. این گره سپس به یک گره چپ و راست تقسیم می شود. سپس این گره ها به گره های راست و چپ مربوطه خود تقسیم می شوند.

 

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

مقدار در برگ ها معمولاً میانگین مشاهداتی است که در آن منطقه خاص رخ می دهد. به عنوان مثال در سمت راست ترین گره برگ زیر، ۵۵۲٫۸۸۹ میانگین ۵ نمونه است.

راهنمای جامع تحلیل رگرسیون

این تقسیم تا کجا پیش می رود همان چیزی است که به عنوان عمق درخت شناخته می شود. این یکی از پارامترهایی است که می توان آن را تنظیم کرد.

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

رگرسیون تصادفی جنگل

جنگل تصادفی مجموعه ای از درختان تصمیم است. این بدان معناست که بسیاری از درختان، که به روشی “تصادفی” ساخته شده اند، یک جنگل تصادفی را تشکیل می دهند.

هر درخت از یک نمونه متفاوت از ردیف ها ایجاد می شود و در هر گره، نمونه متفاوتی از ویژگی ها برای تقسیم انتخاب می شود.

هر یک از درختان پیش بینی خود را انجام می دهد.

سپس این پیش‌بینی‌ها میانگین می‌شوند تا یک نتیجه واحد تولید کنند.

میانگین گیری یک جنگل تصادفی را بهتر از یک درخت تصمیم گیری می کند، بنابراین دقت آن را بهبود می بخشد.

یک پیش‌بینی از رگرسیون جنگل تصادفی میانگینی از پیش‌بینی‌های تولید شده توسط درختان جنگل است.

 

نمونه ای از رگرسیون خطی آموزش دیده و جنگل تصادفی

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

بیایید این دیتاست را در نظر بگیریم که در آن شما باید قیمت الماس را بر اساس ویژگی های دیگر مانند قیراط، عمق، جدول، x، y و z پیش بینی کنید. اگر به توزیع قیمت در زیر نگاه کنیم:

جنگل تصادفی در پایتون

می بینیم که قیمت از ۳۲۶ تا ۱۸۸۲۳ متغیر است.

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

توزیع قیمت های پیش بینی شده به شرح زیر است:

آیا می توان از جنگل تصادفی برای رگرسیون استفاده کرد؟

قیمت‌های پیش‌بینی‌شده به وضوح خارج از محدوده مقادیر «قیمت» است که در دیتاست آموزشی دیده می‌شود.

یک مدل رگرسیون خطی، درست همانطور که از نام آن پیداست، یک مدل خطی روی داده ها ایجاد می‌کند. یک راه ساده برای فکر کردن در مورد آن به شکل y = mx+C است.

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

اکنون به نتایج به دست آمده از یک رگرسیون جنگل تصادفی با استفاده از همان dataset نگاه می کنیم.

این مقادیر به وضوح در محدوده ۳۲۶ و ۱۸۸۲۳ — درست مانند مجموعه آموزشی ما هستند. هیچ مقداری خارج از آن محدوده وجود ندارد. جنگل تصادفی نمی تواند برون یابی کند.

مشکل برون یابی

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

اگر به مقادیر پیش‌بینی نگاه کنید به این شکل خواهند بود:

واقعا چرا؟

بیایید این پدیده را در اینجا بررسی کنیم. داده های استفاده شده در بالا دارای ستون های زیر قیراط، عمق، جدول x، y، z برای پیش بینی قیمت است.

نمودار زیر یک درخت تصمیم را از رگرسیون جنگل تصادفی نشان می دهد.

خوشه بندی طبقه بندی رگرسیون یادگیری ماشین

بیایید به بخش کوچکتری از این درخت زوم کنیم. به عنوان مثال، ۴ نمونه با عمق <= 62.75، x <= 5.545، قیراط <= 0.905، و z <= 3.915 وجود دارد. قیمتی که برای اینها پیش بینی می شود ۲۷۷۵٫۷۵ است.

این رقم نشان دهنده میانگین هر چهار نمونه است. بنابراین، هر مقدار در مجموعه آزمایشی که در این برگ بیفتد، ۲۷۷۵٫۷۵ پیش بینی می شود.

چرا جنگل تصادفی بهتر از رگرسیون خطی است؟

به این معنی که وقتی Regressor جنگل تصادفی وظیفه پیش‌بینی مقادیری را دارد که قبلاً دیده نشده‌اند، همیشه میانگینی از مقادیری را که قبلاً دیده شده بود پیش‌بینی می‌کند.

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

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

راه حل چیست؟

خب، پس چگونه می توانید با این مشکل برون یابی مقابله کنید؟

چند گزینه وجود دارد:

از یک مدل خطی مانند رگرسیون SVM، رگرسیون خطی و غیره استفاده کنید

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

از نسخه های اصلاح شده جنگل تصادفی استفاده کنید

 

یکی از این پسوندها جنگل های تصادفی با رگرسیون (RERFs) است.

 

به طور خاص، دو مرحله برای فرآیند وجود دارد:

Lasso را قبل از Random Forest اجرا کنید.

آموزش یک جنگل تصادفی در باقی مانده از Lasso.

از آنجایی که Random Forest یک الگوریتم پیش‌بینی‌کننده کاملاً ناپارامتریک است، ممکن است روابط شناخته‌شده بین پاسخ و پیش‌بینی‌کننده‌ها را به‌طور مؤثری ترکیب نکند.

 

RERF ها قادر به ترکیب روابط شناخته شده بین پاسخ ها و پیش بینی کننده ها هستند که یکی دیگر از مزایای استفاده از جنگل های تصادفی تقویت شده با رگرسیون برای مشکلات رگرسیون است.

فرمول رگرسیون یادگیری ماشین

چه زمانی از Random Forest استفاده کنیم؟

وقتی داده ها روند غیر خطی دارند و برون یابی خارج از داده های آموزشی مهم نیست.

چه زمانی از Radom Forest استفاده نکنیم؟

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

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.