الگوریتم Random Forest
الگوریتم Random Forest یک الگوریتم یادگیری ماشینی است که برای مسائل پیشبینی و تصمیمگیری استفاده میشود. این الگوریتم، به صورت یک مجموعه از درختهای تصمیمگیری (Decision Tree) که به صورت تصادفی ساخته شدهاند، عمل میکند. هر درخت تصمیمگیری، بر اساس ورودیهای داده شده، به یکی از خروجیها تصمیم میگیرد و خروجی نهایی الگوریتم Random Forest، بر اساس رایگیری اکثریت درختهای تصمیمگیری است.
الگوریتم Random Forest، از چند مرحله تشکیل شده است که شامل مراحل زیر میباشد:
1- روش Bootstrap: این روش به این صورت است که برای ساخت هر درخت، به صورت تصادفی و با جایگذاری تکراری، نمونههای مجموعه داده انتخاب میشوند. این کار به این منظور است که از تفاوتهای نمونههای داده که در مجموعه داده وجود دارد، برای ساختن درختهای متفاوت استفاده شود.
2- ساخت درخت تصمیمگیری: برای هر مجموعه داده، یک درخت تصمیمگیری ساخته میشود. درخت تصمیمگیری با استفاده از الگوریتم ساخت درخت تصمیمگیری، تشکیل میشود. در این روش، با توجه به ویژگیهای دادهها، دستهبندیهای مختلفی برای دادهها تعیین میشود و درخت تصمیمگیری بر اساس این دستهبندیها ساخته میشود.
3- رایگیری اکثریت: در این مرحله، برای هر داده ورودی، خروجی الگوریتم توسط همه درختهای تصمیمگیری ساخته شده در مرحله قبل محاسبه میشود. سپس با توجه به رایگیری اکثریت، خروجی نهایی برای آن داده مشخص میشود.
فرمولبندی الگوریتم Random Forest به صورت زیر است:
- از مجموعه دادههای آموزشی، n تا نمونه با جایگذاری تصادفی انتخاب کنید.
- برای هر نمونه، یک درخت تصمیمگیری با استفاده از الگوریتم ساخت درخت تصمیمگیری شکل داده میشود.
- خروجی الگوریتم برای هر نمونه، با استفاده از همه درختهای ساخته شده محاسبه میشود.
- با توجه به رایگیری اکثریت، خروجی نهایی برای هر نمونه مشخص میشود.
- برای ارزیابی دقت الگوریتم، از مجموعه دادههای آموزشی استفاده میشود و دقت الگوریتم به صورت میانگین دقت درختها محاسبه میشود.
فرض کنید که ما n نمونه داده داریم که هرداده شامل m ویژگی است. همچنین، برای هر نمونه، یک خروجی (label) داریم که مشخص میکند داده به کدام دسته تعلق دارد. الگوریتم Random Forest برای پیشبینی خروجی برای یک داده جدید، ابتدا نمونهای شبیه به داده جدید را در هر درخت تصمیمگیری ساخته شده پیدا میکند و سپس با توجه به رایگیری اکثریت، خروجی نهایی برای داده جدید مشخص میشود.
الگوریتم Random Forest با استفاده از تکنیکهایی مانند Bootstrap و رایگیری اکثریت، به دلیل تصادفی بودن ساخت درختهای تصمیمگیری، از بیشبرازش یا بیشبرازش (overfitting) به دادهها جلوگیری میکند و عملکرد خوبی در مسائل پیشبینی و تصمیمگیری دارد.