خوشه‌بندی سلسله مراتبی (Hierarchical Clustering)

یکی از معروف‌ترین و پرکاربردترین روش‌های خوشه‌بندی که در اکثرِ مراجع و کتاب‌های خوشه‌بندی، یک پای ثابت هست، الگوریتم‌های خوشه‌بندیِ سلسله مراتبی می‌باشند. این الگوریتم‌ها به دو دوسته‌ی agglomerative و partitioning تقسیم‌بندی می‌شوند. در روشِ agglomerative که به آن روش پایین به بالا نیز گفته می‌شود، هر نمونه ابتدا خود یک خوشه است و در هر مرحله نمونه‌ها به هم دیگر می‌چسبند تا خوشه‌های بزرگ‌تر را تولید کنند و در نهایت همه‌ی نمونه‌ها با هم یک خوشه‌ی بزرگ را تشکیل می‌دهند. ولی در partitioning بر عکس است، یعنی ابتدا تمامیِ نمونه‌ها با هم یک خوشه‌ی بزرگ در نظر گرفته می‌شوند و بعد در هر مرحله به خوشه‌های کوچک‌تر تقسیم می‌شوند تا جایی که هر نمونه یک خوشه باشد.

ادامه خواندن “خوشه‌بندی سلسله مراتبی (Hierarchical Clustering)”

خوشه‌بندی با Gaussian Mixture Model و الگوریتم EM

شاید در ابتدا عبارتِ Gaussian Mixture Model خیلی ساده و راحت به نظر نرسد. نمی‌خواهم شما را ناامید کنم، ولی همین طور هم هست! اما در این درس، می‌خواهیم تکه‌های این پازل را با همدیگر یاد گرفته و با به هم چسبداندنِ تکه‌های این پازل، بتوانیم الگوریتمِ خوشه‌بندیِ Gaussian Mixture Model یا همان GMM را درک کنیم. این الگوریتم خودْ از روشِ بیشینه سازی انتظار (Expectation Maximization) یا همان EM استفاده می‌کند که در این درس، به این الگوریتم نیز خواهیم پرداخت.

ادامه خواندن “خوشه‌بندی با Gaussian Mixture Model و الگوریتم EM”

الگوریتم خوشه‌بندی طیفی (Spectral Clustering)

الگوریتم‌های زیادی جهت خوشه‌بندی (Clustering) عرضه شده‌اند که هر کدام کاربردها و سرعت‌های خاص خود را دارند. در دروسِ گذشته با انواع روش‌های پایه‌ای خوشه‌بندی آشنا شدیم. در این درس می‌خواهیم یک الگوریتمِ خوشه‌بندی که کمی پیشرفته‌تر به نظر می‌رسد را با یکدیگر مرور کنیم. این الگوریتم که خوشه‌بندیِ طیفی یا همان Spectral Clustering نام دارد شاید در ابتدا کمی سخت و پیچیده به نظر برسد، ولی با شناختِ مفاهیمِ پایه و ترکیبِ آن‌ها می‌توان به خوشه‌بندی طیفی دست یافت. این خوشه‌بندیْ خود در نهایت از الگوریتمی مانند KMeans استفاده می‌کند، ولی قبل از آن یک سری تغییر در ساختار داده‌ها و در واقع تغییر در نگاه خود به داده‌ها به وجود می‌آورد.

ادامه خواندن “الگوریتم خوشه‌بندی طیفی (Spectral Clustering)”

الگوریتم خوشه‌بندی MeanShift

الگوریتمِ KMeans با وجودِ اینکه الگوریتمِ بسیار خوبی برای خوشه‌بندی است، یک مشکل اساسی دارد و آن این است که کاربر، در ابتدا باید تعداد خوشه‌های موجود را به این الگوریتم بگوید. در واقع الگوریتمِ KMeans بایستی تعدادِ نقاطِ اولیه‌ی خود را بداند تا به وسیله‌ی آن بتواند خوشه‌ها را بسازد. برای غلبه بر این مشکل می‌توان از الگوریتمِ MeanShift استفاده کرد. در این درس قصد داریم به این الگوریتم و چگونگیِ کارکرد آن بپردازیم.

ادامه خواندن “الگوریتم خوشه‌بندی MeanShift”

الگوریتم خوشه‌بندی DBSCAN مبتنی بر غلظت

شاید بَعد از الگوریتمِ خوشه‌بندی KMeans، الگوریتمِ DBSCAN را بتوان معروف‌ترین الگوریتمْ در حوزه‌ی خوشه‌بندیِ داده‌ها دانست. یکی از تفاوت‌های اصلی این الگوریتم با KMeans این است که الگوریتم DBSCAN نیاز به تعیین تعدادِ خوشه توسط کاربر ندارد و خودِ الگوریتم می‌تواند خوشه‌ها را مبتنی بر غلظتِ آن‌ها شناسایی کند. اجازه بدهید در این درس ببینیم که این الگوریتم چگونه می‌تواند غلظت را شناسایی کند و خوشه‌ها را در میان داده‌های مختلف از یکدیگر تفکیک داده و شناسایی کند.

ادامه خواندن “الگوریتم خوشه‌بندی DBSCAN مبتنی بر غلظت”

الگوریتم خوشه‌بندی KMeans

KMeans شاید ساده‌ترین الگوریتمِ خوشه‌بندی باشد که در بسیاری از مواقع جزوِ بهترین الگوریتم‌های خوشه‌بندی نیز هست. این الگوریتم از دسته الگوریتم‌هایی است که بایستی تعداد خوشه‌ها (گروه‌ها) را از قبل به او گفته باشیم. فرض کنید مانندِ درسِ شبکه های عصبی دو دسته داده داریم (پراید و اتوبوس) با این تفاوت که در یک مسئله‌ی خوشه‌بندی، نمی‌دانیم که کدام پراید است کدام اتوبوس؟ و فقط یک سری داده با دو ویژگی (طول ماشین و ارتفاع ماشین) در اختیار داریم. اجازه دهید اینبار این دو دسته را بدون دانستنِ برچسبِ آن ها بر روی نمودار رسم کنیم (برای اینکه بدانید چگونه این نمودار رسم می شود و بُعدهای مختلف آن چگونه ساخته می‌شود، درسِ شبکه‌ی عصبی را خوانده باشید) به صورت ساده، ما یک تعداد ماشین (اتومبیل) داریم که هر کدام ارتفاع و طولِ مشخصی را دارند. آن‌ها را به این گونه در دو بُعد در شکلِ زیر نمایش می‌دهیم):

ادامه خواندن “الگوریتم خوشه‌بندی KMeans”