توضیحات
مدلي مبتني بر الگوريتم ژنتيك براي انتخاب/استخراج ويژگي و بهينه سازي پارامترهاي SVM
پیاده سازی مقاله
روند الگوریتم اصلی مقاله الگوریتم ژنتیک می باشد.
لذا ابتدا باید جمعیت اولیه را برای الگوریتم ژنتیک تولید کنیم.
قالب اصلی کروموزوم به صورت زیر لحاظ شده است:
C | Sigma | PCA | Feature |
با کمک قالب کروموزم جمعیت اولیه رابه صورت دلخواه تولید می کنیم (در مقاله گفته شده که صد تا تولید کنید).
سپس باید با کمک تابع برازش یاfunction fitness میزان مفید بودن هر یک از بردارهای تولید شده را به دست می اوریم.
در تابع پردازش ابتدا به مقدار PCA نگاه می کنیم اگر برابر یک باشد نشان دهنده این است که باید از PCA استفاده کرد.
قبلا در برنامه اصلی داده ها را به دو دسته Train و Test تقسیم کرده ایم.
داده های قسمت Train را به تابع PCA می دهیم و از آن جایی که وظیفه ی PCA کاهش بعد است، داده های Train را کاهش می دهد.
این کاهش در تعداد نمونه های Dataset نمی باشد در تعداد ویژگی ها است.
مقدار این کاهش هم به تعداد ویژگی هایی هست که در کروموزوم مقدار یک را دارند به طور خلاصه PCA داده های Train را به مقدار ویژگیهای که مقدار یک دارند کاهش می دهد.
اگر مقدار سوم بردار برابر صفر باشد به معنی استفاده کردن از ویژگی ها با مقدار یک و عدم استفاده از ویژگی ها با مقدار صفر است.
به عبارت دیگر در ابتدای تابع پردازش ما با کاهش بعد داده های Train روبرو می شویم که با کمک مقدار سوم بردار کروموزوم این کار صورت می گیرد.( PCA یا عدم استفاده از PCA ).
این کاهش بعد باید به داده های TesT هم اعمال گردد.
سپس مرحله ی Train کردن با کمک Svm می شود.
داده های کاهش یافته Train را به تابع Svm می دهیم.
سپس داده های TesT را به Svm Predict می دهیم و مقادیر را برای بردار TesT پیش بینی می کنیم.
سپس با بردار اصلی مقایسه کرده و میزان دقیق بودن را بدست می آوریم که در واقع میزان Svm accuracy عنوان شده در تابع fitness را به دست آوردیم.
سپس با کمک فرمول زیر میزان برازش داده های تولید شده تصادفی را به دست می آوریم.
WA × Svm – accuracy + wF × Svm
مقدار WA =0/8و WF = 0/2 در نظر گرفته شده است. چون که در مقاله عنوان شده است.
مرحله بعدی Crossover است از بین داده ها ی تولید شده دو تا داده که دارای Fitness خوبی هستند انتخاب می شوند و Crossoverدو نقطه ای اجرا می شود و دو تا نمونه دیگر تولید می شود.
سپس با کمک تابع جهش جای دو تا ژن را عوض می کنیم.
در یک حلقه تکرار داده ها انتخاب می شوند، Crossover می شوند، Mutation می شوند.
زمانی که تعداد تکرارها به 500 برسد یا میزان Fitness بودن تقریباً 9/0 شود برنامه متوقف می شود و بهترین کروموزوم را به خروجی ارسال می کند که شامل میزان مناسب برای C و Sigma، استفاده یا عدم استفاده از PCA، زیر مجموعه مناسب از ویژگیها است.
خروجی الگوریتم:
زمانی که الگوریتم را اجرا می کنید ابتدا تعداد جمعیت اولیه را و بعد تعداد تکرار را سوال می کند.
ساز و کار الگوریتم به صورتی است که تعداد جمعیت باید بزرگتر و مساوی ده باشد در غیر این صورت اجرا نمی شود.
لازم به ذکر است که در مقاله عنوان شده است که تعداد جمعیت اولیه 100 و تعداد تکرار 500 باشد.
خروجی الگوریتم ابتدا بهترین کروموزم یافت شده است که به ترتیب شامل مقدار بهینه برای پارامتر C و Sigma می باشد ، مقدار بعدی مشخص می کند که از PCAاستفاده شده است یا نه.
مقدار یک استفاده را نشان می دهد و مقدار صفر عدم استفاده را .
مقادیر بعدی نشان می دهد که کدام ویژگی انتخاب و کدامیک انتخاب نشود.
یک انتخاب و صفر عدم انتخاب.
خروجی نهایی میزان دقت کلاس بندی را با توجه به مقدار C ،Sigma ،استفاده یا عدم استفاده از PCA، زیر مجموعه مناسب از ویژگی ها ، مشخص می کند.
نتیجه شبیه سازی با متلب
ans =
Columns 1 through 13
26.0000 1.0989 1.0000 1.0000 1.0000 0 1.0000 1.0000 1.0000 0 1.0000 0 0
Columns 14 through 17
1.0000 0 0 0.5449
deghat =
55%
کلید واژه : الگوريتم ژنتيك, انتخاب ويژگي, شناسايي الگو, كلاسبندي, ماشين بردار حامي,
شبیه سازی
مدلي مبتني بر الگوريتم ژنتيك براي انتخاب/استخراج ويژگي و بهينه سازي پارامترهاي SVM
به تعداد محدودی قابل فروش می باشد.
سفارش انجام پروژه مشابه
درصورتیکه این محصول دقیقا مطابق خواسته شما نمی باشد،.
با کلیک بر روی کلید زیر پروژه دلخواه خود را سفارش دهید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.