پیاده سازی انتخاب ویژگی با الگوریتم کلونی مورچه ACO برای DT در متلب

در این پست به بحث استفاده از الگوریتم کلونی مورچگان Ant Colony Optimization یا (ACO) را برای انتخاب ویژگی (Feature Selection) برای الگوریتم یادگیری ماشین درخت تصمیم ( Discussion Tree یا همان DT می پردازیم. در این بحث با توجه به خاصیت الگوریتم الگوریتم مورچه به انتخاب ویژگی با ACO از دیتاست ها پرداخته می شود. کدهای برنامه بصورت دقیق بر روی دیتاست موجود نوشته شده و بصورت روان قابل در است. انتخاب ویژگی با ACO برای DT در نرم افزار متلب 2014 نوشته شده است در ادامه به تشریح موضوع می پردازیم.

الگوریتم کلونی مورچه ACO

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

از آنجایی که مورچه ها اصلا چشم ندارند، تعاملات آن ها از طریق ماده شیمیایی فرومون که از آن برای نشان گذاری مسیر استفاده می شود، اانجام می گیرد. هرچه فرومن های بیشتری در مسیر قرار گیرد مابقی مورچه ها از این مسیر بیشتر استفاده می کنند؛ بنابراین، چنین کمیتی نشان می دهد که این مسیر به عنوان یکی از بهینه ترین و کوتاه ترین راه می باشد. اکنون نگاهی به یک نمونه عینی می اندازیم. هدف پیدا کردن بهترین راه از نقطه آغازی N (آشیانه) به نقطه مقصد F (منبع غذا) می باشد.الگوریتم مورچه ACO

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

 

روش درخت تصمیم

درخت تصمیم، یک الگوریتم دسته‌بندی است که ساختارش بر اساس قوانین دسته‌بندی “if-then” است. در این روش ابتدا باید رخدادهای ممکن را تعیین کنیم و درخت را از گره ریشه ترسیم کنیم. هر گره مقداری که از تابع gain گرفته‌اند را توضیح می‌دهد. در ساختار یک درخت تصمیم برگ‌ها نشان‌دهنده‌ی دسته مشابه از اسناد و شاخه‌ها نشان‌دهنده‌ی پیوستگی ویژگی‌های مربوط به آن دسته است. یک درخت تصمیم خوب سازمان‌دهی شده می‌تواند دسته‌ی یک سند را به‌راحتی در گره ریشه درخت قرار داده و اجازه دهد که ساختار پرس‌وجو تا رسیدن به یک برگ معین اجرا شود که هدف دسته‌بندی سند را نشان دهد .

انتخاب ویژگی با ACO برای DT

روش دسته‌بندی درخت تصمیم نسبت به سایر ابزارهای پشتیبانی تصمیم‌گیری دارای مزیت‌های برجسته است. مزیت اصلی درخت تصمیم، حتی برای کاربران غیرمتخصص سادگی‌ آن در فهم و تفسیر است. علاوه بر این تفسیر، نتایج به‌دست‌آمده می‌تواند به‌راحتی با استفاده از تکرار الگوریتم‌های ساده ریاضی انجام گیرد. درخت تصمیم می‌تواند به‌صورت تجربی نشان دهد که تکرار کار دسته‌بندی متن شامل تعداد زیادی از ویژگی‌های مناسب و مربوطه است. یک کاربرد از درخت تصمیم برای شخصی کردن تبلیغات در صفحات وب است. خطر عمده در پیاده‌سازی یک درخت تصمیم‌گیری over fit شدن داده‌های آموزشی است.

انتخاب ویژگی با ACO برای DT

برای انتخاب ویژگی با ACO برای DT به‌صورت جزئی‌ می‌توان گفت ابتدا یک بردار ویژگی دودویی با طول n (به تعداد پارامترهای ورودی) از F1 تا Fn به‌صورت تصادفی تولید می‌شود هرکدام از این بیت‌های این رشته‌ی دودویی متناظر با یک ویژگی در ماتریس آموزش است. اگر بیت متناظر با هر ویژگی صفر باشد آن ویژگی حذف‌شده و اگر یک باشد آن ویژگی در آموزش دخالت داده می‌شود پس از اجرای یک دور از الگوریتم کلونی مورچه با ویژگی تصادفی مقدار برازندگی برای هر بردار ویژگی دودویی تولید می‌شود.

برازندگی نیز مقدار خطای آموزش و تعداد ویژگی‌ها است که می‌خواهیم در هر دور کمینه شود بر این اساس هر بار یک دسته جدید از ویژگی‌های انتخاب می‌شود و رفته‌رفته به سمت کمترین خطای آموزشی در الگوریتم می‌رویم بهترین دسته انتخاب‌شده نهایی می‌شود و همان هدف یعنی انتخاب ویژگی‌های بهتر آشکار می‌شود.
الگوریتم ACO یک روش جستجوی تصادفی است که به کلاس الگوریتم‌های مبتنی بر جمعیت تعلق دارد. این تکنیک از تشابه میان شیوه جستجوی غذای مورچه‌ها در طبیعت و شیوه جستجوی بهینه مسئله بهینه‌سازی ترکیبی توسط الگوریتم‌های بهینه‌سازی استفاده می‌نماید.

سورس کد انتخاب ویژگی با ACO برای DT در متلب

سورس کد انتخاب ویژگی با ACO برای DT در متلب 2014 نوشته شده است. این سورس کد بر روی دیتاست کوچکی انجام شده است. فقط با جایگذاری دیتاست خودتان می توانید از این سورس کد برای دیتاست جدید استفاده کنید. سورس انتخاب ویژگی با ACO برای DT دارای دو بخش است بخش اول توسط فایل DT.m اجرا می شود که این قسمت فقط الگوریتم DT یا درخت تصمیم را اجرا می کند و بدون در نظر گرفتن انتخاب ویژگی است. بخش دوم توسط فایل  DT_with_selection_ACO.m اجرا می شود که توسط الگوریتم کلونی مورچگان برای انتخاب ویژگی (فیوچر) می پردازد. کل فایل های موجود 7 فایل می باشد که 4 فایل مربوط به الگوریتم کلونی مورچگان و مابقی برای اجرای پیاده سازی است.

  • Dataset.mat: دیتاست مربوط به پیاده سازی می باشد.
  • DT.m: اجرای پیاده سازی برای دسته بندی بدون انتخاب ویژگی یا خصیصه است.
  • DT_with_selection_ACO.m: اجرای پیاده سازی برای دسته بندی بدون انتخاب ویژگی یا خصیصه است.

نمونه ای از سورس کد مربوط به DT_with_selection_ACO.m به شرح زیر است:

برای دانلود محصول آن را خریداری کنید.

 

خروجی پیاده سازی

انتخاب ویژگی با ACO برای DT انتخاب ویژگی با ACO برای DT انتخاب ویژگی با ACO برای DT

ویدئوی معرفی محصول

درباره محصول

سورس برنامه پیاده سازی انتخاب ویژگی با ACO برای DT در متلب در متلب عنوان محصولی است که در این پست به آن پرداخته شده است. محصول در نرم افزار متلب نوشته شده و بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید.

 

59,000 تومان

1 دیدگاه برای پیاده سازی انتخاب ویژگی با الگوریتم کلونی مورچه ACO برای DT در متلب

  1. امتیاز 5 از 5

    programstore

    نظرات و دیدگاه های خود را با ما درمیان بگذارید.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

اطلاعات فروشنده