خب، بیا یکمی درباره دنیای خوشهبندی دادهها صحبت کنیم؛ اونم به زبون خودمونی! اگه با مفهوم “خوشهبندی” (Clustering) آشنا نیستی، یعنی تقسیم کردن دادهها به دستههایی که اعضاشون به هم شبیهترن. این کار تو یادگیری بدون ناظر زیاد استفاده میشه، یعنی مدل نمیدونه هر داده مربوط به چه برچسبیه و خودش باید ساماندهی کنه دادهها رو.
مشکل اینه که الگوریتمهای کلاسیک مثل Kmeans – همون الگوریتم معروفی که همه جا میشنوی – با شکلهای غیرمعمول خوشهها یا دادههای خیلی پیچیده خیلی زود به مشکل میخورن. مثلاً Kmeans بیشتر با خوشههای گرد (دایرهای) حال میکنه! تازه، به محل شروع خودش حساسه و اگه دادهها پخش باشن یا زیاده از حد بُعد داشته باشن، نمیتونه خوب عمل کنه.
برای همین سر و کله یه سری الگوریتم نوآورانه به اسم «الگوریتمهای متاهیوریستیک» پیدا شده. حالا Metahuristic یعنی چی؟ منظور الگوریتمهایی هستن که مثل شکارچی دنبال جوابهای خوب میگردن و تو فضای بزرگ دادهها گم نمیشن! مثل الگوریتم بهینهسازی هشتپا (Cuttlefish Optimization Algorithm یا همون CFO). این الگوریتم الهام گرفته از رفتار هشتپاها تو طبیعته که خیلی جذابن و روشون کلی تحقیقات انجام دادن.
ولی خب حتی CFO هم مشکلات خاص خودشو داره، مثل این که زود به جواب ناقص میرسه و نمیتونه توی محلههای کوچیک دنبال جوابای بهتر بگرده (یعنی Local Search ضعیف داره).
اینجا بود که یه گروه باحال اومدن و با ترکیب CFO با یه روش دیگه که اسمش سیمپلکس نلدر-مید (Nelder-Mead simplex method) هست، یه الگوریتم جدید ساختن به اسم SMCFO! این SMCFO مخفف نسخه بهبود یافته CFO با کمک سیمپلکسه. حالا این روش سیمپلکس چیه؟ یه تکنیک ریاضی برای پیدا کردن جواب بهینه توی مسائل پیچیده که کمک میکنه سریعتر و دقیقتر به جواب برسیم.
توی الگوریتم SMCFO، جمعیت (یا همون کاندیداهای جواب) رو به ۴ زیرگروه تقسیم میکنن. یکی از این زیرگروهها از روش سیمپلکس برای تقویت کیفیت راهحلهاش استفاده میکنه، بقیه گروهها هم وظیفه دارن همزمان فضای داده رو کاوش کنن و دنبال جوابای جدید بگردن یا روی جوابای خوب گِیر بدن! این کار باعث میشه الگوریتم بتونه هم دنبال شگفتی بگرده (جستجوی کلی – یا global exploration) هم توی مناطق امیدبخش گیر کنه تا بهترین جواب رو پیدا کنه (exploitation).
برای سنجش این الگوریتم جدید، محققها اونو با ۴ الگوریتم معروف دیگه مقایسه کردن: CFO همون هشتپای اولیه، PSO (یعنی Particle Swarm Optimization، یا بهینهسازی ازدحام ذرات – الگوریتمی الهام گرفته از حرکت گروهی پرندهها)، SSO و SMSHO (هر دوشون هم جزو همین خانواده الگوریتمهای باحال و الهامگرفته از طبیعت هستن).
آزمایشها روی ۱۴ مجموعه داده انجام شد؛ دو تا ساختگی برای تست شرایط ویژه و ۱۲ تا هم از مخزن معروف دادههای UCI که برای ارزیابی الگوریتمهای یادگیری ماشین استفاده میشه (این مخزن UCI منبع معتبریه واسه تست الگوریتمها).
نتیجه چی شد؟ بگو غوغا شد! این الگوریتم SMCFO تونست تو همهی دیتاستها، از همه حریفاش دقیقتر خوشهبندی کنه، زودتر جواب بده و حتی پایدارتر باشه (یعنی تعداد دفعاتی که خوب جواب داد بیشتر بود و برحسب شانس نبود). تازه نتایج و پیشرفتها با آزمونهای آماری غیرپارامتریک سنجیده شد (یعنی از نظر آماری هم ثابت شد که شانس تو کار نبوده و واقعا SMCFO یه سر و گردن از بقیه بالاتره).
خلاصه که اگه دنبال یه الگوریتم خفن واسه خوشهبندی دادهها هستی و نمیخوای تو دام الگوریتمهای قدیمی یا جوابای نصفه نیمه بیفتی، SMCFO رو بدون نگرانی امتحان کن؛ چون با ترکیب ذهن خلاق هشتپا و یه روش ریاضی قوی، معجون فوقالعادهای واسه پیدا کردن بهترین گروهبندی دادهها ساخته!
منبع: +