الگوریتم جنگل تصادفی (Random Forest) یکی از قدرتمندترین و پراستفادهترین روشها در یادگیری ماشین برای مسائل طبقهبندی (Classification) و رگرسیون (Regression) است. این الگوریتم، که زیرمجموعهای از یادگیری جمعی یا گروهی (Ensemble Learning) و تکنیک “بگینگ” (Bagging) به شمار میرود، دقت بالایی را در کنار مقاومت در برابر بیشبرازش (Overfitting) ارائه میدهد. نرمافزار وکا (Weka) این الگوریتم را به راحتی در اختیار کاربران قرار میدهد.
معرفی الگوریتم جنگل تصادفی
جنگل تصادفی در اصل مجموعهای از درختان تصمیم (Decision Trees) است که هر کدام به صورت مستقل آموزش دیدهاند. ایده اصلی این است که به جای تکیه بر تصمیم یک درخت واحد (که ممکن است حساس به نویز و بیشبرازش باشد)، از خرد جمعی صدها یا هزاران درخت برای رسیدن به یک پیشبینی قویتر استفاده شود.
برای ساخت این “جنگل”، از دو نوع تصادفیسازی استفاده میشود:
- نمونهگیری تصادفی (Bootstrap Aggregation - Bagging): هر درخت با استفاده از یک زیرمجموعه تصادفی از نمونههای مجموعه داده اصلی آموزش میبیند (با جایگزینی). این فرآیند باعث میشود که هر درخت دیدگاه کمی متفاوت نسبت به دادهها داشته باشد.
- انتخاب تصادفی ویژگیها: در هر گره از درخت تصمیم، به جای در نظر گرفتن تمام ویژگیها برای یافتن بهترین تقسیمبندی، تنها یک زیرمجموعه تصادفی از ویژگیها در نظر گرفته میشود. این تصادفیسازی، ارتباط قوی بین درختان را کاهش داده و باعث تنوع بیشتر در مدل نهایی میشود.
نتیجه نهایی پیشبینی، در مسائل طبقهبندی بر اساس رأی اکثریت (Majority Vote) درختان و در مسائل رگرسیون بر اساس میانگین خروجی درختان محاسبه میشود.
مراحل گام به گام اجرای جنگل تصادفی در Weka Explorer
الگوریتم جنگل تصادفی در وکا با نام weka.classifiers.trees.RandomForest شناخته میشود و در تب “Classify” قرار دارد.
گام 1: آمادهسازی و بارگذاری دادهها
همانند سایر الگوریتمهای وکا، ابتدا دادهها باید در فرمت ARFF آماده شده و از طریق تب “Preprocess” در Weka Explorer بارگذاری شوند. همچنین، باید ویژگی (Attribute) کلاس (Class) را که قصد پیشبینی آن را دارید، در بخش پایین تب “Preprocess” مشخص کنید.
گام 2: انتخاب الگوریتم و تعیین پارامترها
به تب “Classify” بروید و مراحل زیر را دنبال کنید:
- انتخاب Classifier: بر روی دکمه “Choose” در کنار نام الگوریتم فعلی کلیک کنید. سپس مسیر
weka->classifiers->treesو در نهایتRandomForestرا انتخاب کنید. - تنظیم پارامترها: بر روی نام
RandomForestکلیک کنید تا پنجره تنظیمات باز شود. مهمترین پارامترها عبارتند از: numTrees: تعداد درختانی که قرار است در جنگل ساخته شوند (به صورت پیشفرض 100). افزایش این عدد معمولاً دقت را افزایش میدهد اما زمان آموزش را طولانیتر میکند.numFeatures: تعداد ویژگیهایی که به صورت تصادفی در هر تقسیمبندی گره در نظر گرفته میشوند. مقدار پیشفرض آن به صورت خودکار محاسبه میشود (معمولاً ریشه دوم تعداد کل ویژگیها برای طبقهبندی) و اغلب نیازی به تغییر ندارد.maxDepth: حداکثر عمق درختان. این پارامتر میتواند برای کنترل پیچیدگی و جلوگیری از بیشبرازش تنظیم شود.seed: برای اطمینان از تکرارپذیری نتایج، تنظیم یک بذر تصادفی (Seed) مفید است.- پس از تنظیم، بر روی “OK” کلیک کنید.
گام 3: انتخاب گزینه ارزیابی (Test Options)
در بخش “Test options”، نحوه ارزیابی عملکرد مدل را تعیین کنید. گزینههای متداول عبارتند از:
Cross-validation: روش استاندارد که مجموعه داده را به تعداد مشخصی زیرمجموعه (Fold) تقسیم میکند (معمولاً 10 Fold) و برای ارزیابی عملکرد تعمیم مدل (Generalization) توصیه میشود.Percentage split: دادهها را به نسبت مشخصی به مجموعههای آموزشی و آزمایشی تقسیم میکند.Use training set: از کل دادهها برای آموزش و آزمون استفاده میکند که منجر به تخمین بیش از حد خوشبینانه از عملکرد میشود و فقط برای بررسی بیشبرازش به کار میرود.
گام 4: اجرای الگوریتم و تحلیل نتایج
- بر روی دکمه “Start” کلیک کنید. وکا شروع به ساخت جنگل تصادفی میکند.
- پس از اتمام، نتایج در بخش “Classifier output” نمایش داده میشود.
بررسی و تفسیر خروجی
خروجی جنگل تصادفی در وکا بر ارزیابی عملکرد کلی مدل تمرکز دارد، نه بر جزئیات هر درخت تصمیم. مهمترین بخشهای خروجی عبارتند از:
- خلاصه ارزیابی (Summary): این بخش شامل معیارهای کلیدی است.
Correctly Classified Instances: درصد نمونههایی که به درستی توسط جنگل تصادفی طبقهبندی شدهاند (دقت یا Accuracy).Incorrectly Classified Instances: درصد نمونههایی که به اشتباه طبقهبندی شدهاند.- ماتریس درهمریختگی (Confusion Matrix): یک جدول که نشان میدهد الگوریتم در طبقهبندی هر کلاس چقدر خوب عمل کرده و چقدر احتمال دارد یک نمونه از کلاس A را به اشتباه به عنوان کلاس B طبقهبندی کند.
- معیارهای تفکیکی (Detailed Accuracy By Class): این بخش برای هر کلاس، معیارهایی مانند دقت (Precision)، فراخوان (Recall)، و F-Measure را نمایش میدهد.
- Precision: از میان نمونههایی که مدل به عنوان کلاس X پیشبینی کرده، چند درصد واقعاً X بودهاند.
- Recall: از میان تمام نمونههایی که واقعاً کلاس X بودهاند، مدل چند درصد آنها را به درستی پیدا کرده است.
- اهمیت ویژگیها (Attribute importance): اگرچه وکا به طور مستقیم “اهمیت ویژگیها” (Feature Importance) را به آسانی نمایش نمیدهد، اما میتوان از طریق بستههای افزودنی (Packages) یا روشهای دیگر، میزان تأثیر هر ویژگی در پیشبینی نهایی جنگل را استخراج کرد.
کلیدواژه ها : اجرای-الگوریتم-جنگل-تصادفی-در-وکا-Random-Forest-Weka-Classification-پیاده-سازی-در-وکا-Ensemble-Learning-Bagging-درخت-تصمیم-Decision-Tree-ARFF-Classify-numTrees-Cross-validation-Confusion-Matrix-Precision-Recall-F-Measure