قراره تو این دوره چی یاد بگیرم؟

  • الگوریتم جنگل تصادفی چیست؟
  • جنگل تصادفی در پایتون

سرفصل های دوره

۲ فصل
۳ جلسه
۵۷ دقیقه
۱

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

۲ قسمت
۰۰:۲۵:۳۲
1

درخت تصمیم

پخش
۱۰:۰۲
2

جنگل تصادفی، معایب و چالش‌ها

۱۵:۳۰
۲

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

۱ قسمت
۰۰:۳۱:۳۵

آیا می‌خواهید یکی از محبوب‌ترین و کاربردی‌ترین الگوریتم‌های یادگیری ماشین را به‌صورت حرفه‌ای یاد بگیرید؟ دوره آموزش عملی الگوریتم جنگل تصادفی (Random Forest) در سایت دانشجویار فرصتی استثنایی برای شماست! در این دوره، با تمام جزئیات و نکات مهم این الگوریتم قدرتمند آشنا می‌شوید و یاد می‌گیرید چگونه داده‌های خود را به بهترین شکل دسته‌بندی و پیش‌بینی کنید.

با روش تدریس پروژه‌محور و مثال‌های کاربردی، نه تنها مفاهیم تئوری را درک خواهید کرد، بلکه می‌توانید با اطمینان کامل این الگوریتم را در پروژه‌های عملی خود پیاده‌سازی کنید. اگر می‌خواهید یادگیری مؤثر و مطمئنی را تجربه کنید، این دوره را از دست ندهید!

در این دوره چه می‌آموزید؟

در این دوره آموزشی، شما به‌طور کامل با الگوریتم “جنگل تصادفی” (Random Forest) و مباحث مرتبط با آن آشنا خواهید شد. ابتدا، مفهوم درخت‌های تصمیم (Decision Trees) را به‌صورت جامع و با ذکر مثال‌های کاربردی یاد می‌گیرید. سپس وارد مباحث روش‌های گروهی (Ensemble Methods) می‌شویم و نحوه استفاده این روش‌ها برای افزایش دقت و کارایی مدل‌ها را آموزش می‌دهیم.

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

در بخش عملی دوره شما یک مسئله classification را با الگوریتم جنگل تصادفی حل خواهید کرد. این شامل واردکردن داده‌ها، ایمپورت کتابخانه‌ها، تنظیم هایپرپارامترها و پیاده‌سازی کامل الگوریتم است. علاوه بر این در این پروژه، ویژوالایزیشن هم داریم که نشان می‌دهد درخت‌های تصمیم به‌طور مستقل از یکدیگر عمل می‌کنند و هیچ وابستگی به یکدیگر ندارند. در پایان، علاوه بر پیاده‌سازی روش classification، کدهای روش رگرسیون نیز در اختیار شما قرار می‌گیرد تا مهارت‌های خود را گسترش دهید.

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

برای درک بهتر مفاهیم این دوره و ارتقای مهارت‌های خود، می‌توانید موارد زیر را به‌عنوان پیش‌نیاز یا حتی تکمیل‌کننده این دوره استفاده کنید:

دستاوردهای دوره

پس از اتمام دوره آموزش الگوریتم جنگل تصادفی، شما توانایی‌ها و دستاوردهای زیر را خواهید داشت:

  • یادگیری یکی از محبوب‌ترین و پرکاربردترین الگوریتم‌های یادگیری ماشین: شما با الگوریتم جنگل تصادفی آشنا خواهید شد و قادر خواهید بود آن را در پروژه‌های مختلف پیاده‌سازی کنید.
  • حل مشکل بیش‌برازش (Overfitting): با استفاده از تکنیک‌های جنگل تصادفی، قادر خواهید بود از بروز مشکل بیش‌برازش جلوگیری کنید.
  • مدیریت مقادیر Null و Missing Value: شما خواهید آموخت که چگونه با Missing Value کار کنید و نگران مقادیر نال نخواهید بود.

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

الگوریتم جنگل تصادفی یک الگوریتم یادگیری ماشین با نظارت (supervised learning) است. این الگوریتم درختهای تصمیم را بر نمونه‌های مختلف می‌سازد و در زمان استفاده از رگرسیون اکثریت رای آنها را برای طبقه بندی و میانگین می گیرد. یکی از مهمترین امکانات جنگل تصادفی اینست که می‌تواند دیتاست شامل متغیرهای پیوسته را همانطور که در رگرسیون و متغیرهای categorical را همانطور که در classification است مدیریت کند. این الگوریتم برای classification و رگرسیون بهتر عمل می‌کند.

الگوریتم جنگل تصادفی که توسط دو متخصص علم آمار یعنی لئو برایمن (Leo Breiman) و ادل کاتلر (Adele Cutler) ابداع شده است، خروجی چندین درخت تصمیم (Decision Tree) را برای رسیدن به یک نتیجه واحد، ترکیب می‌کند.

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

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

مزایا و معایب الگوریتم Random Forest

مزایا

  • می‌توان از آن در مسائل CLASSIFICATION و رگرسیون استفاده کرد.
  • این الگوریتم مشکل بیش‌برازش را حل می‌کند؛ زیرا خروجی بر اساس رای اکثریت یا میانگین‌گیری است.
  • عملکرد خوبی دارد حتی اگر داده‌ها شامل مقادیر null یا missing باشد.
  • هر درخت تصمیم ایجاد شده از بقیه مستقل است بنابراین خاصیت موازی‌سازی را نشان می‌دهد.
  • بسیار پایدار است زیرا میانگین پاسخهای داده شده توسط تعداد زیادی درخت گرفته می‌شود.
  • تنوع را حفظ می‌کند زیرا در هنگام ساخت هر درخت تصمیم تمام ویژگیها در نظر گرفته نمی‌شوند اگرچه در همه موارد درست نیست.
  • از مشقت ابعاد مصون است. چون هر درخت تمام ویژگیها را در نظر نمی‌گیرد فضای ویژگیها کاهش می‌یابد.
  • مجبور نیستیم داده‌ها را برای train و تست تفکیک کنیم چون همیشه 30 درصد داده‌ها که توسط درخت تصمیم ساخته شده از بوت استرپ دیده نمی‌شود.

معایب

  • رندوم فارست در مقایسه با درختان تصمیم که در آنها می‌توان با دنبال کردن مسیر درختان تصمیم‌گیری کرد، بسیار پیچیده است.
  • به دلیل پیچیدگی، زمان train نسبت به سایر مدلها بیشتر است. هرگاه مجبور به پیش‌بینی باشد، هر درخت تصمیم باید خروجی برای داده‌های ورودی تولید کند.

Real-life Analogy of random forest:

برای درک بیشتر این مفهوم، بیایید به یک قیاس زندگی واقعی بپردازیم. دانش آموزی به نام X میخواهد بعد از 10+2 یک رشته (دوره) انتخاب کند و بر اساس مجموعه مهارتهای خودش در انتخاب دچار مشکل شده است. بنابراین تصمیم می‌گیرد با افراد مختلفی مثل پسرعموها، معلمان، والدین، دانشجویان فارغ التحصیل و افراد شاغل مشورت کند.

او از آنها سوالات مختلفی پرسید نظیر: چرا باید انتخاب کند، فرصتهای شغلی با این دوره، هزینه دوره و… در نهایت بعد از مشورت با افراد مختلف درباره این درس، تصمیم می‌گیرد که دوره پیشنهاد شده توسط اکثر افراد را بگذراند.

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

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

قبل از درک عملکرد الگوریتم رندوم فارست در یادگیری ماشین، باید نگاهی به تکنیک ensemble learning بیندازیم. Ensemble در واقع به معنای ترکیب چند مدل است. بنابراین مجموعه‌ای از مدلها به جای یک مدل فردی (خاص) برای پیش‌بینی‌ها استفاده می‌شوند.

Ensemble از دو متد استفاده می‌کند:

1- Bagging: یک زیر مجموعه آموزشی متفاوت از داده آموزشی نمونه با جایگزینی ایجاد می کند و خروجی نهایی بر پایه رای اکثریت است. برای مثال جنگل تصادفی

2- Boosting: با ایجاد مدلهای متوالی یادگیرندگان ضعیف را به یادگیرندگان قوی ترکیب می‌کند. بطوریکه مدل نهایی بالاترین دقت را داشته باشد. به عنوان مثال ADA Boost ، XG Boost

random forest

بررسی Bagging

همانطور که قبلا گفته شد، جنگل تصادفی بر اصل Bagging کار می‌کند. حال بیایید جزئیات آن را کمی درک کنیم.

Bagging که به نام boostrap aggregation شناخته می‌شود یک تکنیک گروهی (Ensemble) است که توسط جنگل تصادفی استفاده می‌شود. Bagging یک نمونه/زیر مجموعه تصادفی از کل دیتاست انتخاب می‌کند. از این رو هر مدل که از نمونه‌ها (نمونه‌های بوت استرپ) ارائه می‌شود توسط داده‌های اصلی با جایگزینی به نام row sampling تولید می‌شود. این مرحله از row sampling با جایگزینی، بوت استرپ نامیده می‌شود.

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

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

  1. در مدل جنگل تصادفی، یک زیر مجموعه از نقاط داده و یک زیر مجموعه از ویژگیها برای ساخت هر درخت تصمیم انتخاب می شود. به بیان ساده، n رکورد تصادفی و m ویژگی که k تعداد رکورد دارند از دیتاست گرفته می‌شوند.
  2. درختهای تصمیم منحصربفرد برای هر نمونه ساخته می‌شوند.
  3. هر درخت تصمیم یک خروجی تولید خواهد کرد.
  4. خرجی نهایی به ترتیب بر اساس رای اکثریت یا میانگین برای classification و رگرسیون در نظر گرفته می‌شود.

هایپرپارامترها برای افزایش قدرت پیش‌بینی

  • N-estimators: تعداد درختهایی که الگوریتم قبل از میانگین‌گیری حدسها می‌سازد.
  • Max-features: حداکثر تعداد ویژگیها، جنگل تصادفی تقسیم یک گره را در نظر می‌گیرد.
  • Mini-sample-leaf: حداقل تعداد برگهای مورد نیاز برای تقسیم یک گره داخلی را تعیین می‌کند.
  • Criterion: چگونه گره را در هر درخت تقسیم کنیم؟ (آنتروپی-ناخالصی جینی/ log loss (از دست دادن لاگ))
  • Max-leaf-nodes: حداکثر گره‌های برگ در هر درخت

هایپرپارامترها برای افزایش سرعت

  • N-jobs: به موتور می‌گوید که اجازه استفاده از چند پردازنده را دارد. اگر مقدار 1 باشد، می‌تواند فقط از یک پردازنده استفاده کند اما اگز -1 باشد، محدودیتی ندارد.
  • Random-state (حالت تصادفی): تصادفی بودن نمونه را کنترل می‌کند. مدل همیشه نتایج یکسانی می‌سازد اگر مقدار مشخص از حالت تصادفی داشته باشد و اگر آن پارامترها و همان داده‌های آموزشی را داده باشد.
  • Oob-score: ooB به معنای خارج از کیسه (out of the bag) است. این یک روش اعتبار سنجی متقابل جنگل تصادفی است. در اینجا یک سوم نمونه برای یادگیری داده استفاده نمی‌شود بلکه برای ارزیابی عملکرد استفاده می‌شود. این نمونه‌ها، نمونه‌های خارج از کیسه نامیده می‌شوند.

نتیجه گیری

اگر بخواهید یک مدل سریع و کارآمد بسازید، الگوریتم جنگل تصادفی یک انتخاب عالی است زیرا یکی از بهترین چیزها درباره جنگل تصادفی اینست که می‌تواند missing value ها را مدیریت کند. این یکی از بهترین تکنیکها با کارایی بالا می‌باشد که کاربرد فراوانی در صنایع مختلف دارد. می‌تواند داده‌های باینری، پیوسته و categorical را مدیریت کند.