آموزشیادگیری ماشین

درس ۵۹ از ۹۹، هوش مصنوعی، حدود ۷ دقیقه خواندن

خوشه‌بندی

جواب کوتاه

خوشه‌بندی یعنی چیزهای شبیه به هم رو، بی اینکه کسی از قبل گفته باشه چه گروه‌هایی هست، توی یه گروه بذاریم؛ طوری که توی هر گروه به هم شبیه‌تر باشن تا به بقیه. اسمش از خوشه‌ی انگور اومده: دونه‌هایی که به هم چسبیدن. «شبیه» رو ما تعریف می‌کنیم؛ مثلا هم‌سن یا هم‌خرید. برای همین یه الگوریتم نیست، یه خانواده‌ست: بعضی‌ها خوشه رو دور یه مرکز می‌بینن (مثل k-میانگین)، بعضی‌ها زنجیره‌ی همسایه‌ها، و بعضی‌ها جاهای پرپشت. کار خودکاری هم نیست؛ تعداد خوشه‌ها و اینکه نتیجه خوبه یا نه، با آزمون و خطا و فایده‌ش توی کار معلوم می‌شه.

خوشه‌ی انگور

یه خوشه‌ی انگور رو ببینید: چند تا دونه که به هم چسبیدن. اسم این درس هم دقیقا از همین اومده.

خوشه‌بندی یعنی داده‌ها رو طوری گروه کنیم که توی هر گروه، به هم شبیه‌تر باشن تا به گروه‌های دیگه. اینجا کسی از قبل نگفته چند تا خوشه هست یا اسمشون چیه؛ پس یه کار بی‌نظارت هست.

شبیه یعنی چی؟

یه سوال مهم: دو تا چیز کِی «شبیه»ن؟ جوابش رو داده نمی‌ده؛ ما می‌دیم. همین هشت تا مشتری رو ببینید:

«شبیه» یعنی هم‌سن: جوون‌ها و مسن‌ترها
«شبیه» یعنی هم‌خرید: پرخرج‌ها و کم‌خرج‌ها

اگه شبیه یعنی هم‌سن، دو تا خوشه داریم: جوون‌ها و مسن‌ترها. اگه شبیه یعنی هم‌خرید، دو تا خوشه‌ی کاملا دیگه داریم: پرخرج‌ها و کم‌خرج‌ها. هیچ‌کدوم غلط نیست؛ بستگی داره دنبال چی هستیم.

معمولا «شبیه» یعنی نزدیک، با همون فاصله‌ای که توی نزدیک‌ترین همسایه‌ها دیدیم. پس اینجا هم ویژگی‌ها باید هم‌اندازه بشن، وگرنه یه ویژگی با عددهای بزرگ همه‌چی رو تعیین می‌کنه.

سه جور خوشه

«خوشه» تعریف دقیقی نداره، و برای همین کلی الگوریتم خوشه‌بندی هست. سه تا فکر اصلی اینان:

دور یه مرکز: هر خوشه یه نقطه‌ی وسط داره
زنجیره‌ی همسایه‌ها: هر کی به یکی نزدیکه، وصل می‌شه
پرپشتی: جاهای شلوغ خوشه، پراکنده‌ها نویز
  • دور یه مرکز: هر خوشه یه نقطه‌ی وسط داره و هر چیزی مال نزدیک‌ترین مرکزه. معروف‌ترینش k-میانگین هست، درس بعد.
  • زنجیره‌ی همسایه‌ها: هر نقطه‌ای که به یه نقطه‌ی دیگه نزدیک باشه، بهش وصل می‌شه؛ حتی اگه خوشه دراز و کج باشه.
  • پرپشتی: جاهایی که نقطه‌ها شلوغن، خوشه‌ان؛ نقطه‌های تنها و پراکنده بینشون رو نویز حساب می‌کنه. خوشه می‌تونه هر شکلی داشته باشه، حتی هلالی.

درخت خوشه‌ها

روش زنجیره‌ای یه چیز قشنگ هم می‌ده: اول نزدیک‌ترین‌ها رو به هم وصل می‌کنه، بعد گروه‌های نزدیک رو، و همین‌طور تا همه یکی بشن. اگه این رو بکشیم، یه درخت می‌شه:

هر چی پیوند بالاتر باشه، یعنی اون دو گروه از هم دورتر بودن. حالا کافیه یه جایی درخت رو افقی ببرید: برش پایین‌تر، خوشه‌های بیشتر و کوچیک‌تر؛ برش بالاتر، خوشه‌های کمتر و بزرگ‌تر. به این شکل می‌گن دندروگرام، و به این روش خوشه‌بندی سلسله‌مراتبی.

خوب بود یا نه؟

سنجیدن خوشه‌بندی تقریبا به سختی خود خوشه‌بندیه. چند تا راه دارن:

  • از درون: توی هر خوشه چقدر به هم نزدیکن و خوشه‌ها چقدر از هم دورن. ولی این عدد معمولا به الگوریتمی نمره‌ی بهتری می‌ده که با همین معیار کار می‌کنه.
  • با جواب درست: اگه برچسب واقعی داشته باشیم، مقایسه می‌کنیم. ولی اگه برچسب داشتیم، اصلا لازم نبود خوشه‌بندی کنیم!
  • نظر کارشناس: یه آدم وارد نگاه می‌کنه ببینه معنی داره یا نه.
  • فایده: ببینیم خوشه‌ها توی کار بعدیمون چقدر به درد خوردن.

برای همین خوشه‌بندی کار خودکاری نیست؛ معمولا چند بار با تعداد خوشه‌ها، نوع فاصله و تنظیمات بازی می‌کنن تا نتیجه به دردشون بخوره.

کجا به کار میاد

خیلی جاها: توی تحلیل عکس، برای فشرده کردن داده، و توی زیست‌شناسی برای پیدا کردن ژن‌هایی که الگوی شبیه هم دارن، که گاهی ربط‌های تازه‌ای رو نشون می‌ده. قدمتش هم زیاده؛ اولین بار سال ۱۹۳۲ توی انسان‌شناسی به کار رفت.

درس بعد معروف‌ترین روش خوشه‌بندی رو قدم به قدم می‌بینیم: k-میانگین.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

  • شبیه‌ها کنار هم، بی برچسب.
  • «شبیه» رو ما تعریف می‌کنیم.
  • دور مرکز، زنجیره، یا پرپشتی.
  • درخت خوشه‌ها: هر برش، یه تعداد.
  • سنجیدنش سخته؛ با فایده‌ش.

خودتون رو بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو می‌بینید: چند تا درست، چند تا نادرست.

خودتون رو بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها عوض می‌شه.
  • تا آخر نمی‌گیم کدوم جواب درست بوده؛ می‌تونید برگردید و جوابتون رو عوض کنید.
  • آخرش کارنامه می‌گیرید: چند تا درست، چند تا نادرست.
  • اگه وسطش بستید، دوباره که باز کنید از همون‌جا ادامه می‌دید.

فصل‌های این درس

درس بعد