الگوریتمهای استقرایی (Inductive Algorithms) در قلب یادگیری ماشین و دادهکاوی قرار دارند. این الگوریتمها بر اساس نمونههای دادهای گذشته (دادههای آموزشی) که شامل ویژگیها و برچسبهای (Labels) مربوطه هستند، یک مدل (Model) یا قاعده (Rule) کلی را یاد میگیرند. هدف این مدل، پیشبینی یا طبقهبندی برچسب نمونههای جدید و ندیدهشده است. نرمافزار وکا (Weka) یک پلتفرم جامع برای پیادهسازی و ارزیابی انواع الگوریتمهای استقرایی، به ویژه الگوریتمهای طبقهبندی (Classification) و رگرسیون (Regression)، است.
الگوریتمهای استقرایی و یادگیری نظارت شده (Supervised Learning)
اغلب الگوریتمهای استقرایی که در وکا پیادهسازی میشوند، در دسته یادگیری نظارتشده قرار میگیرند. در یادگیری نظارتشده، دادههای آموزشی شامل جفتهای ورودی-خروجی (ویژگیها و برچسبهای صحیح) هستند و الگوریتم سعی میکند رابطهای بین ورودیها و خروجیها یاد بگیرد.
مثالهایی از الگوریتمهای استقرایی در وکا:
- درختهای تصمیم (Decision Trees): مانند J48 (پیادهسازی Weka از C4.5)، Random Forest.
- ماشینهای بردار پشتیبان (Support Vector Machines - SVM): مانند SMO (Sequential Minimal Optimization).
- دستهبندهای بیزین (Bayesian Classifiers): مانند Naive Bayes.
- شبکههای عصبی (Neural Networks): مانند Multilayer Perceptron.
- همسایگان نزدیک (Lazy Learning): مانند K-Nearest Neighbors (IBk).
در این راهنما، ما بر پیادهسازی یک الگوریتم طبقهبندی استقرایی رایج و مهم، یعنی J48 (درخت تصمیم)، تمرکز خواهیم کرد.
آمادهسازی دادهها برای الگوریتمهای استقرایی در وکا
برای اجرای الگوریتمهای استقرایی در وکا، دادههای شما باید در فرمت ARFF (Attribute-Relation File Format) باشند. مهمتر از آن، باید دارای یک صفت کلاس (Class Attribute) باشند که همان برچسبی است که الگوریتم باید یاد بگیرد و پیشبینی کند. این صفت معمولاً از نوع اسمی (Nominal) برای مسائل طبقهبندی یا عددی (Numeric) برای مسائل رگرسیون است.
مراحل پیادهسازی الگوریتم J48 در Weka Explorer
گام 1: باز کردن Weka Explorer و بارگذاری دادهها
- اجرای Weka: نرمافزار وکا را باز کنید و گزینه “Explorer” را انتخاب نمایید.
- بارگذاری فایل ARFF: به تب “Preprocess” بروید. روی دکمه “Open file…” کلیک کنید و فایل ARFF آمادهسازی شده خود را انتخاب و بارگذاری کنید. پس از بارگذاری، خلاصهای از آمار و ویژگیهای مجموعه داده شما نمایش داده خواهد شد.
- انتخاب صفت کلاس: در قسمت پایین و سمت راست تب “Preprocess”، یک کادر کمبوباکس (Combo box) با عنوان “Class” وجود دارد. مطمئن شوید که صفت کلاسی که میخواهید پیشبینی کنید (مانند
HealthStatusدر مثال بالا) در این کادر انتخاب شده باشد.
گام 2: انتخاب و تنظیم الگوریتم J48
- رفتن به تب Classify: از نوار تبهای بالای پنجره Weka Explorer، تب “Classify” را انتخاب کنید.
- انتخاب الگوریتم (Classifier): در قسمت “Classifier”، روی دکمه “Choose” کلیک کنید. از لیست باز شده، مسیر
weka.classifiers.trees.J48را پیدا کرده و آن را انتخاب کنید. - تنظیم پارامترها (اختیاری): برای تنظیم پارامترهای J48، روی نام الگوریتم (که اکنون زیر دکمه Choose نمایش داده میشود) کلیک کنید. یک پنجره جدید با گزینههای تنظیمات باز خواهد شد:
unpruned: (Default:False) اگرTrueباشد، درخت هرس (Pruning) نمیشود. هرس کردن به جلوگیری از بیشبرازش (Overfitting) کمک میکند.confidenceFactor: (Default:0.25) این پارامتر برای هرس کردن درخت استفاده میشود. مقادیر پایینتر منجر به هرس بیشتر و درختهای کوچکتر میشوند.minNumObj: (Default:2) حداقل تعداد نمونههایی که در هر برگ (leaf) درخت باید وجود داشته باشند. مقادیر بالاتر باعث میشوند درخت عمومیتر شود.- پس از اعمال تغییرات، روی “OK” کلیک کنید.
گام 3: انتخاب روش ارزیابی مدل
در قسمت “Test options” در تب “Classify”، باید نحوه ارزیابی عملکرد مدل خود را انتخاب کنید:
- Use training set: مدل را روی همان دادههای آموزشی که با آنها ساخته شده، ارزیابی میکند. این روش معمولاً منجر به نتایج خوشبینانه و غیرواقعی میشود و برای ارزیابی عملکرد تعمیم مدل (Generalization performance) مناسب نیست.
- Cross-validation: (توصیه شده) دادههای آموزشی به k بخش (Fold) تقسیم میشوند. مدل k بار آموزش داده میشود؛ در هر بار، k-1 بخش برای آموزش و یک بخش برای تست استفاده میشود. نتایج نهایی میانگین عملکرد در تمام k تکرار است. (معمولاً k=10 انتخاب میشود).
- Percentage split: دادهها را به دو بخش آموزشی (مثلاً 66%) و تست (34%) تقسیم میکند. مدل با بخش آموزشی ساخته شده و با بخش تست ارزیابی میشود.
- Supplied test set: به شما امکان میدهد یک فایل ARFF جداگانه را به عنوان مجموعه تست بارگذاری کنید تا مدل ساخته شده بر روی آن ارزیابی شود.
برای اکثر کاربردها، Cross-validation (با 10 Fold) بهترین روش برای ارزیابی معتبر مدل است.
گام 4: اجرای الگوریتم و مشاهده نتایج
- شروع پردازش: روی دکمه “Start” در پایین و سمت راست پنجره کلیک کنید. الگوریتم شروع به آموزش مدل و ارزیابی آن بر اساس روش انتخابی میکند.
- مشاهده خروجی: پس از اتمام اجرای الگوریتم، نتایج در قسمت “Classifier output” در سمت راست پنجره نمایش داده میشوند. این نتایج شامل بخشهای مهمی هستند:
- Summary (خلاصه):
- Correctly Classified Instances: تعداد و درصد نمونههایی که مدل به درستی طبقهبندی کرده است (معیار اصلی دقت).
- Incorrectly Classified Instances: تعداد و درصد نمونههایی که مدل به اشتباه طبقهبندی کرده است.
- Kappa statistic: معیاری برای سنجش توافق بین طبقهبندی مدل و واقعیت، با در نظر گرفتن توافق تصادفی.
- Mean absolute error, Root mean squared error: معیارهای خطای مدل (مهمتر برای رگرسیون).
- Detailed Accuracy By Class (جزئیات دقت بر اساس کلاس):
- Precision (دقت): نسبت نمونههای صحیح طبقهبندی شده برای یک کلاس از کل نمونههایی که مدل به آن کلاس تخصیص داده است.
- Recall (فراخوانی یا حساسیت): نسبت نمونههای صحیح طبقهبندی شده برای یک کلاس از کل نمونههای واقعی آن کلاس.
- F-Measure (معیار F1): میانگین هارمونیک Precision و Recall.
- Confusion Matrix (ماتریس درهمریختگی): جدولی که نشان میدهد مدل هر نمونه واقعی را به کدام کلاس پیشبینی کرده است. این ماتریس برای درک جزئیات عملکرد مدل، بهویژه در مسائل با کلاسهای نامتوازن، بسیار مفید است.
- هر سطر نشاندهنده نمونههای واقعی یک کلاس و هر ستون نشاندهنده نمونههایی است که مدل به آن کلاس پیشبینی کرده است.
- J48 tree (درخت J48): ساختار درخت تصمیم ایجاد شده نمایش داده میشود که نشاندهنده قواعد یادگرفته شده توسط مدل است. هر گره داخلی یک تست بر روی یک ویژگی و هر برگ یک پیشبینی کلاس است.
گام 5: بصریسازی (Visualization) (اختیاری)
- Visualize Tree: در بخش “Result list” (پایین سمت چپ) روی خط مربوط به نتایج J48 خود راست کلیک کنید و گزینه “Visualize Tree” را انتخاب کنید. این کار درخت تصمیم را به صورت گرافیکی نمایش میدهد که درک منطق مدل را آسانتر میکند.
- Visualize Classifier errors: این گزینه به شما کمک میکند تا نمونههایی که مدل اشتباه طبقهبندی کرده است را مشاهده کنید.
با پیگیری این مراحل، میتوانید به طور مؤثر الگوریتمهای استقرایی مانند J48 را در وکا پیادهسازی کرده، نتایج را ارزیابی و مدلهای کارآمد برای وظایف طبقهبندی خود بسازید.
کلیدواژه ها : پیادهسازی الگوریتمهای استقرایی در وکا-الگوریتمهای استقرایی-Inductive Algorithms-یادگیری نظارت شده-Supervised Learning-J48-درخت تصمیم-Decision Tree-Weka-ARFF-طبقهبندی-Classification-Cross-validation-Confusion Matrix-Precision-Recall-F-Measure-Weka Explorer-صفت کلاس-Class Attribute-