مفاهیم classification vs clustering (خوشه بندی و طبقه بندی) و تفاوت آنها

الگوریتم های یادگیری ماشین به طور کلی بر اساس نوع متغیر خروجی و نوع مشکلی که باید به آن پرداخته شود، دسته بندی می شوند. این الگوریتم ها به طور کلی به سه نوع رگرسیون(Regression)، خوشه بندی (Clustering) و طبقه بندی (Classification) تقسیم می شوند. رگرسیون و طبقه بندی جز الگوریتم های یادگیری با نظارت (supervised learning) هستند در حالی که خوشه بندی جز الگوریتم های بدون نظارت ( unsupervised learning) است.

تفاوت این دو نوع الگوریتم را در تصویر بالا مشاهده میکنید
تفاوت این دو نوع الگوریتم را در تصویر بالا مشاهده میکنید


هنگامی که متغیر خروجی پیوسته است، یک مشکل رگرسیونی است در حالی که زمانی که دارای مقادیر گسسته باشد، یک مشکل طبقه بندی است. الگوریتم های خوشه بندی معمولاً زمانی استفاده می شوند که ما نیاز به ایجاد خوشه ها بر اساس ویژگی های نقاط داده داریم.


طبقه بندی (Classification):

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


انواع الگوریتم های طبقه بندی:

رگرسیون لجستیک (Logistic Regression) : یکی از مدل های خطی است که می توان از آن برای طبقه بندی استفاده کرد. از تابع سیگموئید برای محاسبه احتمال وقوع یک رویداد خاص استفاده می کند. این یک روش ایده آل برای طبقه بندی متغیرهای باینری است.

نزدیک‌ترین همسایگی K یا همان (K-Nearest Neighbors (kNN)): از معیارهای فاصله مانند فاصله اقلیدسی، فاصله منهتن و غیره برای محاسبه فاصله یک نقطه داده از هر نقطه داده دیگر استفاده می کند. برای طبقه بندی خروجی، از k نزدیکترین همسایه هر نقطه داده اکثریت رای می گیرد.

درخت تصمیم (Decision Trees ): این یک مدل غیر خطی است که بر تعدادی از اشکالات الگوریتم های خطی مانند رگرسیون لجستیک غلبه می کند. مدل طبقه بندی را در قالب یک ساختار درختی می سازد که شامل گره ها و برگ ها است. این الگوریتم شامل چندین گزاره if-else است که به تجزیه ساختار به ساختارهای کوچکتر و در نهایت ارائه نتیجه نهایی کمک می کند. می توان از آن برای رگرسیون و همچنین مشکلات طبقه بندی استفاده کرد.

جنگل تصادفی (Random Forest) : جنگل تصادفی یک الگوریتم یادگیری نظارت شده محسوب می‌شود. همانطور که از نام آن مشهود است، این الگوریتم جنگلی را به طور تصادفی می‌سازد. جنگل ساخته شده، در واقع گروهی از درخت‌ تصمیم (Decision Trees) است. کار ساخت جنگل با استفاده از درخت‌ها اغلب اوقات به روش کیسه‌گذاری (Bagging) انجام می‌شود. ایده اصلی روش کیسه‌گذاری آن است که ترکیبی از مدل‌های یادگیری، نتایج کلی مدل را افزایش می‌دهد. به بیان ساده، جنگل تصادفی چندین درخت تصمیم ساخته و آن‌ها را با یکدیگر ادغام می‌کند تا پیش‌بینی‌های صحیح‌تر و پایدارتری حاصل شوند.

ماشین بردار پشتیبانی (Support Vector Machine):بردارهای پشتیبان به زبان ساده، مجموعه ای از نقاط در فضای n بعدی داده ها هستند که مرز دسته ها را مشخص می کنند و مرزبندی و دسته بندی داده ها براساس آنها انجام می شود و با جابجایی یکی از آنها، خروجی دسته بندی ممکن است تغییر کند.ماشینهای بردار پشتیبان، الگوریتم های بسیار قدرتمندی در دسته بندی و تفکیک داده ها هستند بخصوص زمانی که با سایر روشهای یادگیری ماشین مانند روش جنگل تصادفی تلفیق شوند. این روش برای جاهایی که با دقت بسیار بالا نیاز به ماشینی داده ها داریم، به شرط اینکه توابع نگاشت را به درستی انتخاب کنیم، بسیار خوب عمل می کند .


خوشه بندی (Clustering) :

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

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

انواع الگوریتم های خوشه بندی:

خوشه بندی k میانگین (K-Means Clustering): تعداد از پیش تعریف شده k خوشه را مقداردهی اولیه می کند و از معیارهای فاصله برای محاسبه فاصله هر نقطه داده از مرکز هر خوشه استفاده می کند. نقاط داده را بر اساس فاصله آن به یکی از خوشه های k اختصاص می دهد.

خوشه بندی سلسله مراتبی تجمعی (رویکرد پایین به بالا)(Agglomerative Hierarchical Clustering (Bottom-Up Approach)): هر نقطه داده را به عنوان یک خوشه در نظر می گیرد و این نقاط داده را بر اساس متریک فاصله و معیاری که برای پیوند این خوشه ها استفاده می شود ادغام می کند.

خوشه بندی سلسله مراتبی تقسیمی (رویکرد از بالا به پایین)(Divisive Hierarchical Clustering (Top-Down Approach)): با تمام نقاط داده به عنوان یک خوشه مقداردهی اولیه می شود و این نقاط داده را بر اساس متریک فاصله و معیار تقسیم می کند. خوشه های انباشته ای و تقسیمی را می توان به صورت دندروگرام و تعداد خوشه هایی که باید با مراجعه به آن انتخاب شوند نشان داد.

خوشه بندیBIRCH (کاهش و خوشه بندی متوازن تکراری با استفاده از سلسله مراتب): با تولید خلاصه ای از داده ها، خوشه ها را ایجاد می کند. با مجموعه داده های عظیم به خوبی کار می کند زیرا ابتدا داده ها را خلاصه می کند و سپس از همان برای ایجاد خوشه ها استفاده می کند. با این حال، فقط می تواند با ویژگی های عددی که می توانند در فضا نمایش داده شوند، سروکار داشته باشد.


تفاوت بین خوشه بندی و طبقه بندی

نوع: خوشه بندی یک روش یادگیری بدون نظارت است در حالی که طبقه بندی یک روش یادگیری تحت نظارت است.

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

پیش بینی: طبقه بندی شامل پیش بینی متغیر ورودی بر اساس ساختمان مدل است. خوشه بندی عموماً برای تجزیه و تحلیل داده ها و استنتاج از آنها برای تصمیم گیری بهتر استفاده می شود.

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

برچسب داده: الگوریتم های طبقه بندی با داده های برچسب دار سروکار دارند در حالی که الگوریتم های خوشه بندی با داده های بدون برچسب سر و کار دارند.

مراحل: فرآیند طبقه بندی شامل دو مرحله است : آموزش( train) و آزمایش(test). فرآیند خوشه بندی فقط شامل گروه بندی داده ها می شود.

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