دسته‌بندی(classification) و خوشه‌بندی(clustering)؛ مفاهیم و تفاوت‌ها

دو مفهوم بسیار پرکاربرد در علم داده، یادگیری ماشینی و داده کاوی مفاهیم دسته‌بندی و خوشه‌بندی است. ابتدا با تعریف این دو مفهوم آشنا می‌شویم:

دسته‌بندی: ایجاد و ساخت یک مدل برای پیش‌بینی دسته(برچسب) مربوط به یک داده جدید. به طور مثال یک مدل ساخته می‌شود تا بتواند با دریافت اطلاعات یک فرد مشخص کند که این مفرد مبتلا به یک بیماری مشخص هست یا نه؟

خوشه‌بندی: تقسیم مجموعه‌ای از داده‌ها به زیر مجموعه‌هایی به طوری‌که داده‌های داخل هر زیرمجموعه بیشترین شباهت را به هم و داده‌های داخل مجموعه‌های مختلف بیشترین تفاوت را از هم داشته باشند. به طور مثال مجموعه‌ای از متون را طی فرآیند خوشه‌بندی می توان تقسیم‌بندی کرد به طوری که متن‌هایی که دارای موضوعات مشابهی هستند در یک مجموعه قرار بگیرند.

حالا که با تعریف این دو مفهوم آشنا شدیم خوبست کمی دقیق‌تر به تفاوت‌های این دو مفهوم توجه کنیم.

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

یک مساله دسته‌بندی می‌تواند به این صورت باشد که تصویر یک عدد دستنویس به ماشین داده شود و از آن بخواهند که براساس تصاویری که قبلا دیده است مشخص کند که این تصویر چه عددیست اما یک مساله خوشه‌بندی مشابه می‌تواند به این صورت باشد که تعدادی تصویر اعداد دستنویس به ماشین داده شود و از آن خواسته شود که این تصاویر را به گروه‌هایی که با هم مشابه هستند تقسیم کند. حالا این تقسیم ممکنست بر اساس مشابهت دست خط ها اتفاق بیفتد و ممکنست بر اساس مشابهت بین آن چه نوشته شده است و مثلا تمام تصاویری که عدد ۲ در آن‌ها نوشته شده است در یک دسته قرار بگیرند و البته بدون آن که برچسب خاصی به این داده‌ها زده شود.

تفاوت دیگر در نوع یادگیری ماشینی مورد استفاده در این دو فعالیت است. یادگیری ماشینی مورد استفاده در دسته‌بندی از نوع نظارتی(supervised) و در خوشه‌بندی از نوع غیرنظارتی(unsupervised) است. به این معنی که در دسته بندی ابتدا یک مدل بر اساس داده‌هایی که از قبل توسط انسان برچسب(دسته) آن ها مشخص است آموزش داده می‌شود و سپس مدل آموزش داده شده برای پیش‌بینی دسته داده‌های جدید مورد استفاده قرار می‌گیرد اما در خوشه‌بندی مرحله آموزش مدل را نداریم و فقط با یک الگوریتم و با استفاده از ویژگی‌هایی از درون خود داده‌ها و بدون نیاز به داده‌های برچسب گذاری شده باید خوشه‌بندی انجام شود.[تفاوت یادگیری نظارتی و غیرنظارتی]

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

دسته بندی یک فرآیند دو مرحله‌ای شامل آموزش و تست است ولی خوشه بندی یک فرآیند یک مرحله‌ایست.

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

خلاصه تفاوت‌های دسته‌بندی(classification) و خوشه‌بندی(clustering)
خلاصه تفاوت‌های دسته‌بندی(classification) و خوشه‌بندی(clustering)


تصویر زیر تفاوت این دو فعالیت را به خوبی نشان می‌دهد. در مثال دسته‌بندی هدف این است که مشخص شود هر تصویر مربوط به کدام حیوان است و فرض می کنیم که انواع حیوانات را از قبل می‌شناسیم ولی در مثال خوشه‌بندی هدف این است که مثلا تصاویر در دو دسته خوشه‌بندی شوند که در این تصویر پرندگان و پستانداران را از هم جدا کرده است که البته این بر چسب پرنده و پستاندار هم توسط ماشین گذاشته نمی‌شود و فقط داده‌های مشابه در یک دسته قرار می‌گیرند.

تفاوت دسته‌بندی(classification) و خوشه‌بندی(clustering) از سایت بیسمارت
تفاوت دسته‌بندی(classification) و خوشه‌بندی(clustering) از سایت بیسمارت

از انواع روش‌های دسته‌بندی می‌شود به k نزدیکترین همسایه(KNN)، بیز ساده(naive bayes)، قاعده‌محور(rule-based)، ماشین بردار پشتیبان(SVM)، شبکه‌های عصبی(NN) و شبکه‌های باور بیزی(BBN) و از انواع روش‌های خوشه‌بندی می‌شود به میانگین k خوشه(k-mean)، روشهای سلسله مراتبی(hierarchical)، روشهای تراکم محور(density based) و ناحیه بندی محور(grid-based) اشاره کرد.