درختان و جنگل ها نمونه های زیبا و کاملی هستن برای تصمیم گیری! این جمله تا پیش پیدایش الگوریتم جنگل تصادفی یک شعار و حرفی زیبا بود اما امروزه با استفاده از این شاهکار های خلقت، شاهد آون هستیم.
جنگل تصادفی (Random Forest) یکی از پرکاربردترین الگوریتمهای یادگیری ماشینه. این الگوریتم با الهام از طبیعت و به تقلید از مکانیسم رشد درختان در جنگل، تصمیمات پیچیده رو سادهسازی میکنه. در این مقاله، به بررسی مفاهیم پایه، کاربردها و مزایای جنگل تصادفی خواهیم پرداخت.
جنگل تصادفی (Random Forest)چیست؟
جنگل تصادفی (Random Forest) یک الگوریتم یادگیری ماشین(Machine Learning) هستش که برای حل مسائل طبقهبندی(Classification) و رگرسیون (Regression) استفاده میشه. این الگوریتم مجموعهای از درختان تصمیمگیری(Decision Trees) هستش که به صورت تصادفی ساخته میشن. هر درخت به صورت مستقل از دیگر درختها مورد آموزش داده ای قرار میگیره و در نهایت، پیشبینی نهایی با جمعآوری پیشبینیهایه تمامی درختها به دست میاد.
آموزش داده (Training Data) چیست؟
آموزش داده (Training Data) به مجموعهای از دادهها اشاره داره که برای آموزش یک مدل یادگیری ماشین استفاده میشه. هدف از آموزش داده، یادگیری الگوها و روابط موجود در دادهها به گونه ایه که مدل بتونه پیشبینیهای دقیقی رو برای دادههای جدید انجام بده.
جنگل تصادفی چه کاربردهایی داره؟
- طبقهبندی(Classification): شناسایی دستهها یا ساختار های مختلف، مثل تشخیص اسپم در ایمیلها تشخیص تقلب، تشخیص های پزشکی!
- رگرسیون (Regression): پیشبینی مقادیر عددی و فهم اینکه در آینده دچار پیشرفت یا پسرفت میشیم، مانند پیشبینی قیمت مسکن یا قیمت طلا!
- تحلیل ویژگی ها (Attributes): تجزیه و تحلیل ویژگیها و مشخصه هایه مهم در دادهها.
- کاهش بیش برازش یا (Overfitting): با ترکیب شدن چندین درخت در جنگل تصادفی فقط یک یا بخشی از یک درخت تصمیم گیری دچار مشکل بیش برازش میشه.
- پردازش تصویر: تشخیص اشیاء، طبقهبندی تصاویر
خب حالا درخت تصمیمگیری(Decision Tree) چیه پس؟
درخت تصمیمگیری یک مدله پیشبینیه که دادهها رو به صورت سلسلهمراتبی تقسیمبندی میکنه.این درخت تصمیم در ساختاری شبیه به درخت از شاخه ها و برگ هایی تشکیل میشه و چهار مولفه اصلی داره (Root Node)، (Branch Node)، (Leaf Node-Decision)و (Leaf Node-Chance) درختان تصمیمگیری به راحتی قابل تفسیر هستن و میتونن به صورت بصری نمایش داده بشن.

جنگل تصادفی چگونه کار میکنه؟
- نمونهبرداری تصادفی (Random Sampling): برای ساخت هر درخت، نمونههایی از دادههای آموزشی به صورت تصادفی انتخاب میشن.
- نمونه گیری یا بازگشت (Bootstrapping): هنگام تقسیمسازی، فقط تعدادی از ویژگیها به صورت تصادفی انتخاب میشن تا از همبستگی و شباهت میان درختان جلوگیری بشه. این یعنی که برخی از نمونهها ممکنه چندین بار انتخاب بشن و برخی دیگر ممکنه اصلاً انتخاب نشن.
- ساخت درختان تصمیمگیری: هر درخت با استفاده از نمونههای تصادفیه انتخابشده و ویژگیهایی تصادفی ساخته میشه.
- پیشبینی نهایی: برای طبقهبندی، اکثریت آرای درختان (رایگیری) گرفته میشه و برای رگرسیون، میانگین پیشبینیها محاسبه میشه.
آیا تمام درختان استفاده میشن؟ یا به صورت تصادفی فقط بعضی ها انتخاب میشن؟
توی جنگل تصادفی، تمامی درختان تصمیمگیری ساخته شده در فرآیند آموزش داده ایی استفاده میشن. اما دونستن این 2 نکته بسیار حیاتی و ضروریه:
- ساخت درختان به صورت تصادفی: هر درخت به صورت مستقل از دیگر درختان ساخته میشه و برای هر درخت، نمونههایی از دادههای آموزشی به صورت تصادفی انتخاب میشن.
- استفاده از همه درختان برای پیشبینی: پس از اینکه تمامی درختان ساخته شدن، برای پیشبینی نهایی، همه درختان به کار گرفته میشن.
چه چیزی جنگل تصادفی رو از یک درخت تصمیم گیری ساده متمایز میکنه؟
جنگل تصادفی یعنی مجموعهای از درختان تصمیم گیری که در هر درخت، دادهها رو بر اساس ویژگیهای مختلف تقسیم میکنن تا بشه به یک برچسب یا مقدار پیشبینی شده رسید.
تصادفیسازی: در جنگل تصادفی، دو نوع تصادفیسازی انجام میشه:
نمونهگیری تصادفی از دادهها: هر درخت تصمیم تنها بر روی یک زیرمجموعه تصادفی از دادههای آموزشی ساخته میشه.
انتخاب تصادفی از ویژگیها: در هر برگ از درخت، تنها تعداد محدودی از ویژگیها برای تقسیم دادهها در نظر گرفته میشه.
رایگیری: پس از ساختن تعداد زیادی درخت تصمیم، برای هر نمونه جدید، هر درخت یک پیشبینی انجام میدهد. در نهایت، با استفاده از رایگیری اکثریت یا میانگینگیری (بسته به نوع مسئله)، پیشبینی نهایی جنگل تصادفی مشخص میشه.
روشهای مجموعهای: جنگل تصادفی از ایده یادگیری مجموعهای بهره میبره، جایی که چندین مدل (در این مورد، درختان تصمیمگیری) ترکیب میشوند تا عملکرد کلی رو بهبود ببخشن. با تجمیع پیشبینیهای چندین درخت، جنگل تصادفی تلاش میکنه تا واریانس رو کاهش داده و از بیشبرازش جلوگیری بکنه.

نقش ریاضیات در جنگل تصادفی چیست؟
اگرچه درک عمیق ریاضیات در جنگل تصادفی نیازمند دانشی پیشرفته در آمار و احتمال هستش ، اما میتونیم بگیم که این الگوریتم بر اساس مفاهیم اساسی مانند درختان تصمیمگیری(Decision Trees)، آنتروپی (Entropy)، دریافت اطلاعات(Gain Data) و بازگشت(Bootstrapping) بنا شده.
مثالی ساده از جنگل تصادفی
فرض کنید میخواهیم میوهها رو بر اساس ویژگیهایی مانند رنگ، شکل و اندازه طبقهبندی بکنیم. یک جنگل تصادفی میتونه با ساختن چندین درخت تصمیم گیری، که هر کدوم بر اساس زیرمجموعهای از میوهها و ویژگیهای مختلف طراحی شدن، این کار رو انجام بده. برای مثال، یک درخت ممکنه میوههای قرمز و گرد رو به عنوان سیب طبقهبندی کنه، در حالی که درخت دیگری میوههای زرد و کشیده رو به عنوان موز طبقهبندی کنه. در نهایت، با ترکیب همه درختان، جنگل تصادفی میتونه با دقت بالایی میوه جدید رو به دسته صحیح خود اختصاص بده.
پرکاربردترین حوزههای جنگل تصادفی
جنگل تصادفی در بسیاری از حوزهها کاربرد داره، از جمله:
- تشخیص پزشکی: پیشبینی بیماریها بر اساس دادههای بیمار.
- خردهفروشی: بخشبندی مشتریان و سیستمهای توصیهگر.
- محیطزیست: پیشبینی توزیع گونهها و تأثیرات تغییرات اقلیمی.
مزایای استفاده از جنگل تصادفی
- دقت بالا: جنگل تصادفی معمولاً دقت بالایی در مقایسه با سایر الگوریتمها داره.
- مقاومت در برابر بیشبرازش: به دلیل تصادفیسازی، جنگل تصادفی کمتر در معرض مشکل بیشبرازش قرار میگیره.
- قابلیت تعمیمپذیری بالا: جنگل تصادفی میتونه به خوبی به دادههای جدید تعمیم داده بشه.
- قابلیت پردازش دادههای بزرگ: جنگل تصادفی میتونه با دادههای بزرگ و پیچیده به خوبی کار بکنه.
- اهمیت ویژگیها: جنگل تصادفی میتونه اهمیت هر ویژگی در پیشبینی رو نشان بده

