جنگل تصادفی (Random Forest): قدرت خرد جمعی در هوش مصنوعی
نویسنده: فاطمه جعفری نوبخت
در دنیای یادگیری ماشین، همیشه این سوال وجود دارد: «آیا نظر یک متخصص بهتر است یا نظر صدها فرد معمولی؟» الگوریتم جنگل تصادفی یا Random Forest بر اساس پاسخ دوم ساخته شده است. این الگوریتم بر پایه فلسفه «خرد جمعی» عمل میکند و معتقد است که ترکیب چندین مدل یادگیری ضعیفتر، نتیجهای بسیار دقیقتر و پایدارتر از یک مدل پیچیده واحد ارائه میدهد.
۱. جنگل تصادفی چیست؟
جنگل تصادفی یک الگوریتم یادگیری نظارتشده (Supervised Learning) است که هم برای مسائل طبقهبندی (Classification) و هم برای رگرسیون (Regression) استفاده میشود.
همانطور که از نامش پیداست، این الگوریتم از تعداد زیادی «درخت تصمیم» (Decision Tree) تشکیل شده است که با هم یک «جنگل» را میسازند. کلمه «تصادفی» نیز به نحوه ساخت این درختها اشاره دارد که در ادامه توضیح خواهیم داد.
۲. چرا یک درخت کافی نیست؟
برای درک جنگل، باید ابتدا درخت را بشناسیم. یک درخت تصمیم با پرسیدن سوالات پیدرپی (مثل: “آیا هوا ابری است؟” اگر بله -> …) به نتیجه میرسد.
- مشکل درختهای تصمیم تکی: آنها تمایل زیادی به بیشبرازش (Overfitting) دارند. یعنی دادههای آموزشی را آنقدر دقیق حفظ میکنند که روی دادههای جدید و واقعی عملکرد ضعیفی دارند. آنها مانند دانشآموزی هستند که کتاب را حفظ کرده اما مفهوم را نفهمیده است.
جنگل تصادفی با ایجاد صدها درخت و ترکیب نتایج آنها، این مشکل را حل میکند. اگر یک درخت اشتباه کند، بقیه درختها آن را جبران میکنند.

۳. نحوه عملکرد: ساختن جنگل
الگوریتم Random Forest از تکنیکی به نام Bagging (مخفف Bootstrap Aggregation) استفاده میکند. مراحل کار به زبان ساده بدین صورت است:
الف) دادههای تصادفی (Bootstrapping)
فرض کنید ۱۰۰۰ ردیف داده داریم. الگوریتم برای ساخت هر درخت، به جای استفاده از تمام دادهها، یک زیرمجموعه تصادفی از دادهها را انتخاب میکند (با جایگذاری). بنابراین هر درخت با دادههای کمی متفاوت آموزش میبیند.
ب) ویژگیهای تصادفی (Feature Randomness)
این مهمترین تفاوت جنگل تصادفی با Bagging معمولی است. در درختهای تصمیم معمولی، الگوریتم همیشه بهترین ویژگی را برای جداسازی انتخاب میکند. اما در جنگل تصادفی، در هر گره، الگوریتم فقط اجازه دارد از بین یک زیرمجموعه تصادفی از ویژگیها انتخاب کند.
- نتیجه: این کار باعث میشود درختها شبیه هم نشوند (تنوع یا Diversity بالا میرود) و همبستگی بین آنها کاهش یابد.
ج) رأیگیری نهایی (Aggregation)
پس از اینکه تمام درختها ساخته شدند، داده جدید وارد تمام درختها میشود:
- در مسائل طبقهبندی: هر درخت یک رأی میدهد (مثلاً کلاس A یا B). کلاسی که بیشترین رأی (Majority Vote) را بیاورد، خروجی نهایی است.
- در مسائل رگرسیون: میانگین خروجی تمام درختها به عنوان عدد نهایی محاسبه میشود.
۴. مقایسه: درخت تصمیم در برابر جنگل تصادفی
| ویژگی | درخت تصمیم (Single Tree) | جنگل تصادفی (Random Forest) |
| دقت | معمولی | بسیار بالا |
| خطر Overfitting | بسیار زیاد | بسیار کم |
| سرعت آموزش | سریع | کند (نیاز به ساخت صدها درخت) |
| تفسیرپذیری | آسان (قابل رسم و فهم) | دشوار (مدل جعبه سیاه) |
۵. مزایای کلیدی
- دقت بالا: معمولاً یکی از دقیقترین الگوریتمهای کلاسیک است.
- مدیریت دادههای گمشده: میتواند دادههای ناقص (Missing Values) را به خوبی مدیریت کند.
- اهمیت ویژگیها (Feature Importance): یکی از جذابترین قابلیتهای این الگوریتم است. جنگل تصادفی میتواند به شما بگوید کدام متغیرها (ستونها) در رسیدن به جواب نهایی بیشترین تاثیر را داشتهاند. (مثلاً در تشخیص بیماری قلبی، “سن” مهمتر است یا “فشار خون”؟).
- عدم نیاز به نرمالسازی: برخلاف شبکههای عصبی یا SVM، در این الگوریتم نیازی به اسکیل کردن دادهها (Normalization) نیست.
۶. معایب
- کند بودن: پیشبینی با این الگوریتم میتواند زمانبر باشد، زیرا داده باید از صدها درخت عبور کند. برای اپلیکیشنهای Real-time با محدودیت زمانی شدید، شاید بهترین گزینه نباشد.
- حجم بالا: مدل نهایی ممکن است حافظه زیادی اشغال کند.
- غیرقابل تفسیر: نمیتوانید دقیقاً بگویید چرا مدل این تصمیم را گرفت (برخلاف یک درخت تصمیم ساده که مسیر آن مشخص است).
۷. کاربردها در دنیای واقعی
- بانکداری: تشخیص تراکنشهای کلاهبرداری (Fraud Detection) و ارزیابی ریسک اعتباری مشتریان (آیا وام را پس میدهد؟).
- پزشکی: تشخیص بیماری بر اساس سابقه بیمار و علائم (ترکیب هزاران فاکتور).
- بورس و مالی: پیشبینی رفتار قیمت سهام.
- بازاریابی: پیشبینی ریزش مشتری (Churn) و پیشنهاد محصولات (Recommendation).
۸. ابرپارامترهای مهم (Hyperparameters)
اگر بخواهید با پایتون (کتابخانه Scikit-Learn) از این مدل استفاده کنید، تنظیم این پارامترها حیاتی است:
- n_estimators: تعداد درختهای جنگل (معمولاً ۱۰۰ یا بیشتر). هر چه بیشتر، بهتر (اما کندتر).
- max_depth: حداکثر عمق هر درخت. محدود کردن آن از بیشبرازش جلوگیری میکند.
- max_features: حداکثر تعداد ویژگیهایی که در هر گره بررسی میشوند.
9- نتیجهگیری
جنگل تصادفی مانند «آچار فرانسه» دنیای علم داده است. این الگوریتم اغلب اولین انتخاب متخصصان داده است زیرا بدون تنظیمات پیچیده، نتایج قابل قبولی میدهد، دچار بیشبرازش نمیشود و به ما میگوید کدام دادهها مهمتر هستند. اگرچه مدلهای جدیدتری مانند XGBoost در مسابقات دقت بالاتری دارند، اما سادگی و پایداری Random Forest جایگاه آن را تضمین کرده است.
درباره نویسنده:
فاطمه جعفری نوبخت، متخصص برجسته و پژوهشگر حوزه مهندسی محیط زیست، با رویکردی نوین دانش کلاسیک این رشته را با فناوریهای پیشرفته هوش مصنوعی تلفیق کرده و به عنوان پیشگام در زمینه هوش مصنوعی مکانی (GeoAI) شناخته میشود. وی با تکیه بر مدرک کارشناسی ارشد مهندسی محیط زیست و درک عمیق از اکوسیستمها، تخصص خود را فراتر از روشهای سنتی گسترش داده و با ورود به دنیای دادهها، فعالیتهای حرفهای خود را بر کاربرد هوش مصنوعی در علوم محیط زیست متمرکز کرده است. او هماکنون به عنوان مشاور ارشد علوم مکانی در محیط زیست و منابع طبیعی، با استفاده از الگوریتمهای پیشرفته در پی راهکارهایی برای پایش دقیق، پیشبینی تغییرات اقلیمی و مدیریت بهینه منابع است. فاطمه جعفری با باور بنیادین به اینکه «مهمترین توجه انسانها باید به مقوله محیط زیست باشد»، تکنولوژی را ابزاری قدرتمند برای نجات زمین میداند و علاوه بر پروژههای استراتژیک، با برگزاری مستمر کارگاههای آموزشی در زمینه علوم مکانی و زمین، مشتاقانه به انتقال دانش و تربیت نسلی متخصص برای حفاظت از آینده محیط زیست میپردازد.
