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

جنگل تصادفی (Random Forest) یک الگوریتم یادگیری ماشین است که برای پیش‌بینی‌ها از مجموعه‌ای از درخت‌های تصمیم استفاده می‌کند. لئو بریمن (Leo Breiman) این الگوریتم را برای اولین بار در سال ۲۰۰۱ معرفی کرد. ایده اصلی الگوریتم، ایجاد تعداد زیادی درخت تصمیم است که هرکدام روی زیرمجموعه‌ای متفاوت از داده‌ها آموزش می‌بینند. سپس پیش‌بینی‌های این درخت‌ها با هم ترکیب شده و نتیجه نهایی ارائه می‌شود.

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

برای درک بهتر عملکرد الگوریتم، مراحل زیر را در نظر بگیرید:

۱ − ابتدا، نمونه‌های تصادفی از یک مجموعه داده مشخص انتخاب می‌شوند تا تنوع در آموزش ایجاد شود.

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

۳ − در این مرحله، برای هر پیش‌بینی انجام‌شده رأی‌گیری انجام می‌شود تا گزینه غالب مشخص شود.

۴ − در نهایت، پیش‌بینی‌ای که بیشترین رأی را دارد به عنوان پیش‌بینی نهایی انتخاب می‌شود.

نمودار زیر نحوه عملکرد الگوریتم جنگل تصادفی را نشان می‌دهد:

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

جنگل تصادفی الگوریتمی انعطاف‌پذیر است که می‌تواند برای وظایف دسته‌بندی (classification) و رگرسیون (regression) استفاده شود. در وظایف دسته‌بندی، الگوریتم از مد (mode) پیش‌بینی‌های درخت‌های فردی برای تعیین پیش‌بینی نهایی استفاده می‌کند. در وظایف رگرسیون، الگوریتم از میانگین (mean) پیش‌بینی‌های درخت‌های فردی بهره می‌گیرد.

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

این الگوریتم نسبت به سایر الگوریتم‌های یادگیری ماشین مزایای متعددی دارد. برخی از مهم‌ترین این مزایا عبارت‌اند از:

  • مقاومت در برابر بیش‌برازش (Overfitting) − الگوریتم جنگل تصادفی به دلیل استفاده از مجموعه‌ای از درخت‌های تصمیم، به خوبی در برابر بیش‌برازش مقاوم است. این روش باعث کاهش تأثیر نقاط پرت و نویز موجود در داده‌ها می‌شود.
  • دقت بالا − الگوریتم جنگل تصادفی به خاطر دقت بالای خود شناخته شده است. ترکیب پیش‌بینی‌های چندین درخت تصمیم کمک می‌کند تا اثر درخت‌های منفرد که ممکن است دارای خطا یا سوگیری باشند، کاهش یابد.
  • مدیریت داده‌های ناقص − الگوریتم جنگل تصادفی قادر است داده‌های ناقص را بدون نیاز به جایگزینی (imputation) مدیریت کند. این الگوریتم تنها ویژگی‌های موجود برای هر نقطه داده را در نظر می‌گیرد و نیازی نیست که همه ویژگی‌ها برای تمام نقاط داده موجود باشند.
  • مدل‌سازی روابط غیرخطی − الگوریتم جنگل تصادفی می‌تواند روابط غیرخطی بین ویژگی‌ها و متغیر هدف را مدل کند. این توانایی به دلیل استفاده از درخت‌های تصمیم است که قادر به نمایش روابط غیرخطی هستند.
  • اهمیت ویژگی‌ها − الگوریتم جنگل تصادفی اطلاعاتی درباره اهمیت هر ویژگی در مدل ارائه می‌دهد. این اطلاعات می‌تواند برای شناسایی مهم‌ترین ویژگی‌ها، انتخاب ویژگی‌ها و مهندسی ویژگی‌ها مورد استفاده قرار گیرد.

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

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

مرحله ۱ − وارد کردن کتابخانه‌ها

ابتدا کتابخانه‌های لازم را وارد می‌کنیم. از کتابخانه pandas برای دستکاری داده‌ها و از scikit-learn برای پیاده‌سازی الگوریتم جنگل تصادفی استفاده خواهیم کرد:

مرحله ۲ − بارگذاری داده‌ها

در ادامه، داده‌ها را در یک DataFrame از pandas بارگذاری می‌کنیم. برای این آموزش، از مجموعه داده مشهور Iris استفاده خواهیم کرد که یک دیتاست کلاسیک برای مسائل دسته‌بندی است.

مرحله ۳ − پیش‌پردازش داده‌ها

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

مرحله ۴ − آموزش مدل

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

مرحله ۵ − انجام پیش‌بینی

پس از آموزش مدل، می‌توانیم از آن برای پیش‌بینی روی داده‌های آزمون استفاده کنیم.

مرحله ۶ − ارزیابی مدل

در نهایت، عملکرد مدل را با استفاده از معیارهای مختلف مانند دقت (accuracy)، دقت تفکیکی (precision)، یادآوری (recall) و امتیاز F1 ارزیابی می‌کنیم.

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

مثال کامل پیاده‌سازی

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

خروجی

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

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

مزایا

  • این الگوریتم با میانگین‌گیری یا ترکیب نتایج درخت‌های تصمیم مختلف، مشکل بیش‌برازش (Overfitting) را کاهش می‌دهد.

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

  • واریانس کمتری نسبت به یک درخت تصمیم منفرد دارد و پیش‌بینی‌های پایدارتری ارائه می‌دهد.

  • الگوریتم بسیار انعطاف‌پذیر است و دقت بسیار بالایی دارد.

  • نیازی به مقیاس‌دهی داده‌ها (Scaling) ندارد و حتی بدون اعمال مقیاس‌دهی، دقت خوبی حفظ می‌کند.

معایب

  • پیچیدگی اصلی‌ترین نقطه ضعف الگوریتم جنگل تصادفی است.

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

  • اجرای الگوریتم نیازمند منابع محاسباتی بیشتری است.

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

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

به این مطلب امتیاز دهید

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.

آموزش گام به گام برنامه نویسی اندروید با B4A (پروژه محور)
  • انتشار: ۱ شهریور ۱۴۰۴

دسته بندی موضوعات

آخرین محصولات فروشگاه

مشاهده همه

نظرات

بازخوردهای خود را برای ما ارسال کنید