الگوریتمهای طبقه بندی برای ایجاد مدل (سیستمی) برای تشخیص نوع ملور های موجود یا جدید در weka عموما به ۶ دسته تقسیم میگردند که هرکدام در داخل خود الگوریتمهای متعددی دارند :

 

  • Bayes
  • Functions
  • Lazy
  • Meta
  • Misc
  • Trees
  • Rules
  • Immune
  • Neural

 

برای انتخاب، آموزش و استفاده ازمدل در آینده بایستی به مرحله بعد در نرم­افزار WEKA رفته یعنی بخش Classify ، و یکی از الگوریتمهای دسته­بندی[۱] (طبقه بندی) را مورد استفاده قرار دهیم.

 

۳٫۳٫۴ روش انجام کار و ارایه و بررسی نتایج بنابر روش های مختلف داده کاوی

از بخش Classify در WEKA الگوریتم مورد نظر را انتخاب کرده و سپس برای ساختن، آموزش و ارزیابی طبقه بند موردنظر روش cross validation را انتخاب کرده و تعدادfold ها را ۱۰ در نظر گرفتیم سپس بر روی دکمه شروع زده و منتظر نتیجه باقی می­مانیم.

 

مدلهای مورد استفاده در تحلیل که بهترین نتایج را به ما دادند عبارتند از ۲ مورد اول و مورد سوم جزو روش های تکاملی است که به علت مزایایی که دارد امروزه در تشخیص ملور ها مورد توجه زیادی قرار گرفته است، البته روش های طبقه بندی دیگری نیز در آزمایشات متفاوت مورد بررسی قرار گرفت و این روش ها برای ارائه به عنوان نمونه انتخاب شدند :

 

    1. Classification via Regression
    2. Decision Tree C4.5
    3. Immune System

در حالت اول ابتدا از الگوریتم طبقه­بندی از طریق رگرسیون استفاده کردیم، برای ارزیابی و تست مدل از روش cross-validation و تعداد ۱۰ fold استفاده شد. در ابن حالت برای طبقه­بندی ۲۳ نوع ملور مدل ما توانست با دقت ۹۸٫۴۰۳۱ % نوع ملور ها درست تشخیص دهد،

 

 

 

همانگونه که در شکل بالا می­بینید که حاصل نتایج طبقه­بندی از طریق رگرسیون است از کل ۳۱۳۱ نمونه گرداوری شده ، الگوریتم توانسته است که ۳۰۸۱ مورد را در دسته(کلاس)­های مربوطه به درستی قرار دهد. این روش موارد را در یکی از شاخه های درختی مشابه درخت تصمیم­گیری قرار داده و سپس برای هر مورد یک معادله رگرسیون ایجاد می­کند که این معادلات رگرسیونی بر حسب مقادیر و ضرایب پیشگوها که در این جا feature های هر نمونه هستند تغییر می­کند و میزان تاثیر آنها درحالات مختلف در کلاس خروجی متفاوت است. در شکل زیر می­توانید ببینید که به صورت نمونه دسته­بندی و ضرایب برای هر معادله در یک مثال به چه شکلی است . در این روش برای استفاده از هر معادله در واقع قوانین و شرایطی برای مقادیر feature ها مشخص می شود، که در صورت دارا بودن آن شرایط از معادله ای که در انتهای شاخه برای بدست آوردن مقدار کلاس مشخص شده استفاده می شود. در این روش feature های انتخاب شده نقش پیشگو ها را در معادلات رگرسیونی بازی می کنند.

 

 

به عنوان نمونه در شکل بالا ، این گونه گفته می­شود که اگر پارامتر ۸۹ کوچکتر مساوی با ۰٫۰۰۲ بود و Dll47 مقدارش کوچکتر مساوی با صفر بود آنگاه معادله رگرسیونی LM1 را در نظر بگیر و به این ترتیب تمامی معادلات مشخص می­گردند. علی رقم مشابهت این روش با درخت های تصمیم گیری جهت این دو روش کمی متفاوت می باشند.

درحالت دوم از روش درخت های تصمیم گیری و الگوریتم C4.5 که از درخت های تصمیم محبوب می باشد نیز بر روی این داده ها استفاده شد و در همین حالت cross-validation با ۱۰ fold جواب مشابه ای بدست آمد که   ۹۸٫۷۲۲۵ % می باشد.

تفاوت روش طبقه بندی از طریق رگرسیون با درخت های تصمیم گیری در این می باشد که در روش اول شما در انتهای هر شاخه یک مدل رگرسیون (معادلع) خواهید داشت (که برای هر کلاس متفاوت می باشد) که از طریق آن مقدار کلاس محاسبه خواهد شد ولی در روش درخت های تصمیم گیری در انتهای هر شاخه مستقیما مقدار خود کلاس مشخص خواهد شد و اگر نمونه ای برحسب شرایط به انتهای یک شاخه برسد در آنجا مقدار کلاسی که به آن متعلق می باشد به طور دقیق ذکر شده است. البته بعد از آموزش سیستم (مدل) شاخه های درخت و مقادیر کلاس ها در انتهای هر شاخه مشخص می شود. برای درک این دو مدل به درخت تصمیم گیری در پیوست ب مراجعه کنید.

درحالت سوم الگوریتم AIRS (Artificial Immune Recognition System) را بر روی مجموعه داده­ها اجرا می­کنیم در مرحله اول این الگوریتم برای هر نوع یا کلاس یک تعداد نماینده بهینه از روی مجموعه داده های training بدست می آورد که تعداد آنها بسیار کمتر از داده های اصلی می باشد، سپس طبقه­بندی را توسط روش KNN با استفاده از نقاط نماینده هر کلاس انجام می­دهد. نقاط انتخاب شده همراه با داده های test ورودی الگوریتم KNN هستند و در KNN این نقاط برای تشخیص کلاس داده های تست استفاده می شود، در نتیجه این روش بسیار بهتر از KNN عمل می کند، در این روش قدرت تشخیص با همان روش cross-validation با ۱۰ fold دقت تشخیص درست ۸۱٫۹۸۶۶ % درصد است که از تعداد ۳۱۳۱ نمونه ۲۵۶۷ مورد را به شکل صحیح تشخیص می­دهد. نقطه برتری این روش با توجه به پایین بودن درصد طبقه­بندی آن ، قدرت تشخیص بالا برای نمونه ­های جدید است. در این پروژه از ورژن parallel الگوریتم AIRS استفاده شد که برای داده ای زیاد همراه با تعداد کلاس ها و feature های زیاد از سرعت بالایی برخوردار می باشد. این الگوریتم یک الگوریتم supervise الهام گرفته از سیستم ایمنی بدن می باشد که برای طبقه بندی از آن استفاده می شود.

 

از مدل های ایجاد شده در هر روش می توان برای شناسایی سایر ملور هایی که در data set آموزش (train) و تست ما موجود نبود استفاده کرد، البته این مدل ها قدرت خود را با روش cross-validation نشان داده اند، در همین روش نیز ابتدا data set به بخش های مساوی به تعداد fold ها تقسیم می شود، سپس به صورت متوالی بخشی از data set به صورت test و سایر بخش ها به عنوان train استفاده می شود تا تمام بخش ها به عنوان test برای مدل استفاده شود، پس در هر بار بعد از train سیستم با ملور های جدیدی مواجه می شود که قبلا آنها را ندیده و باید نوع آنها را تشخیص دهد.

البته مراحل آموزش و تست سیستم به صورت کاملا مجزا و با data setهای مجزا نیز انجام شد، برای این منظور data set اصلی به صورت random با درصد ۷۰-۳۰ جدا می شود. (ابتدا data set را randomize نمونه و سپس ۷۰% آن را برای train سیستم و ۳۰% آن را برای test سیستم جدا می کنیم). در این حالت ابتدا سیستم را با بخش جدا شده برای train آموزش می دهیم و سپس با استفاده از داده های تست دقت آن را در تشخیص ملورهای جدید ارزیابی می کنیم، نتایج بدست آمده (درصد میزان درستی تشخیص سیستم) برای داده های تست در هر روش در زیر آورده می شود، این نتایج نشان می دهد که مدل (سیستم) های بدست آمده برای تشخیص مالور های جدید قابل اعتماد خواهند بود.

[۱] Classification