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

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

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

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

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

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

درخت تصمیم

رایگان
۱۰:۰۲
2

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

۱۵:۳۰
۲

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

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

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

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

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

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

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

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

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

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

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) است. این یک روش اعتبار سنجی() متقابل جنگل تصادفی است. در اینجا یک سوم نمونه برای یادگیری داده استفاده نمی‌شود بلکه برای ارزیابی عملکرد استفاده می‌شود. این نمونه‌ها، نمونه‌های خارج از کیسه نامیده می‌شوند.

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

مزایا

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

معایب

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

نتیجه گیری

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