بررسی رویکردهای گوناگون دسته‌بندی داده‌ها و ارزیابی مدل‌های طبقه‌بندی

بررسی رویکردهای مختلف دسته‌بندی اطلاعات

دسته‌بندی داده‌ها (Classification) یکی از شاخه‌های اصلی یادگیری نظارت شده (Supervised Learning) است که در آن هدف، پیش‌بینی یک برچسب گسسته برای هر نمونه ورودی است. به عبارت دیگر، به مدل یاد می‌دهیم که یک ورودی را به یکی از چندین کلاس (دسته) نسبت دهد. رویکردهای گوناگونی برای دسته‌بندی وجود دارد که بر اساس تعداد کلاس‌ها و نحوه تخصیص برچسب‌ها تعریف می‌شوند. انتخاب رویکرد مناسب به مسئله کسب‌وکاری شما بستگی دارد:
  • آیا فقط دو حالت وجود دارد؟ (مثلاً «خرید می‌کند / نمی‌کند»)
  • آیا چندین کلاس مجزا داریم؟ (مثلاً نوع خودرو: «سدان، هاچ‌بک، شاسی‌بلند»)
  • آیا هر نمونه می‌تواند همزمان به چند کلاس تعلق داشته باشد؟ (مثلاً برچسب‌دهی موضوعات یک مقاله: هم «اقتصاد» و هم «سیاست»).
در این بخش از دوره، هر کدام از این رویکردها را با مثال‌های واقعی و پیاده‌سازی در پایتون بررسی خواهیم کرد.

Binary Class Classification

دسته‌بندی دودویی (Binary Classification) ساده‌ترین نوع طبقه‌بندی است که در آن هر نمونه فقط می‌تواند به یکی از دو کلاس تعلق داشته باشد. معمولاً این دو کلاس را «مثبت» (Positive / 1) و «منفی» (Negative / 0) می‌نامیم. مثال‌های معروف عبارتند از:
  • تشخیص هرزنامه (Spam) در ایمیل: «هرزنامه» یا «غیر هرزنامه»
  • تشخیص بیماری: «بیمار» یا «سالم»
  • پیش‌بینی ریزش مشتری (Churn): «ترک می‌کند» یا «می‌ماند»
  • تأیید تراکنش بانکی: «کلاهبرداری» یا «عادی»
الگوریتم‌های رایج برای binary classification شامل رگرسیون لجستیک (Logistic Regression)، ماشین بردار پشتیبان (SVM)، درخت تصمیم و جنگل تصادفی هستند. معیارهای ارزیابی در این نوع خاص هستند (دقت، صحت، فراخوانی، F1-score، AUC-ROC) که در بخش بعدی به طور کامل به آنها می‌پردازیم. در این دوره، شما با یک دیتاست واقعی از تراکنش‌های بانکی، یک مدل تشخیص تقلب (Fraud Detection) از صفر تا صد خواهید ساخت.

Multi Class Classification

دسته‌بندی چندکلاسه (Multi-class Classification) حالتی است که تعداد کلاس‌ها بیشتر از دو است، اما هر نمونه فقط به یک کلاس تعلق دارد. به عبارت دیگر، کلاس‌ها انحصاری (Mutually Exclusive) هستند. مثال‌ها:
  • تشخیص نوع گل در دیتاست معروف Iris: «ستاره‌ای، زنبق، رنگین‌کمانی»
  • تشخیص رقم دست‌نویس (MNIST): ارقام ۰ تا ۹ – ۱۰
  • کلاسپیش‌بینی سطح تحصیلات: «زیر دیپلم، دیپلم، لیسانس، فوق لیسانس، دکتری»
روش‌های حل مسائل چندکلاسه معمولاً بر پایه تبدیل به چند مسئله دودویی است:
One-vs-Rest (OvR): برای هر کلاس، یک مدل دودویی می‌سازیم که آن کلاس را در برابر بقیه قرار دهد.
One-vs-One (OvO): برای هر جفت کلاس، یک مدل دودویی می‌سازیم.
در Scikit-learn، اکثر مدل‌ها (مانند LogisticRegression، SVC، RandomForest) به صورت داخلی از multi-class پشتیبانی می‌کنند. همچنین می‌توانید از OneVsRestClassifier و OneVsOneClassifier استفاده کنید. در این دوره، شما با دیتاست MNIST (ارقام دست‌نویس) کار خواهید کرد و مدلی با دقت بالای ۹۵٪ برای تشخیص اعداد می‌سازید.

Multi Label Classification

دسته‌بندی چندبرچسبی (Multi-label Classification) پیشرفته‌تر از دو نوع قبلی است: در اینجا هر نمونه می‌تواند به چندین کلاس (برچسب) همزمان تعلق داشته باشد. برچسب‌ها انحصاری نیستند. مثال‌های دنیای واقعی:
  • دسته‌بندی موضوعات یک مقاله خبری: یک مقاله می‌تواند هم «ورزشی» باشد، هم «سیاسی» و هم «اقتصادی».
  • تشخیص اشیاء در تصویر: در یک تصویر می‌توانید «ماشین»، «درخت» و «عابر پیاده» را همزمان داشته باشید.
  • پیش‌بینی عوارض دارویی: یک دارو ممکن است باعث چند عارضه جانبی مختلف شود.
  • توصیه فیلم به کاربر: یک کاربر ممکن است به چند ژانر (اکشن، درام، کمدی) علاقه داشته باشد.
تفاوت مهم Multi-label با Multi-class: در multi-class خروجی یک برچسب است (مثلاً 2) ولی در multi-label خروجی یک بردار باینری است (مثلاً [1,0,1,1,0] نشان می‌دهد که کلاس‌های اول، سوم و چهارم فعال هستند
روش‌های حل شامل تبدیل مسئله به چند مدل دودویی جداگانه (Binary Relevance) یا استفاده از الگوریتم‌های خاص مثل ClassifierChain و LabelPowerset است. در Scikit-learn از MultiOutputClassifier یا sklearn.multiclass استفاده می‌شود. در این دوره، شما با دیتاست واقعی از مقالات خبری، مدلی می‌سازید که همزمان موضوعات مختلف را تشخیص دهد.

Multi Class Multi Label Classification

دسته‌بندی چندکلاسه-چندبرچسبی (Multi-class Multi-label Classification) پیشرفته‌ترین و پیچیده‌ترین نوع طبقه‌بندی است. در این حالت، هر نمونه می‌تواند به چندین کلاس تعلق داشته باشد، و هر کلاس خود دارای چندین مقدار (دسته) ممکن است. به بیان بهتر، شما چندین ویژگی هدف (target variables) دارید که هر کدام می‌توانند چند کلاسه باشند.

مثال:

  • پیش‌بینی سلیقه کاربر در پلتفرم استریم: دو هدف داریم: «ژانر فیلم» (با مقادیر: اکشن، کمدی، درام) و «زمان تماشا» (با مقادیر: صبح، بعدازظهر، شب). هر کاربر می‌تواند همزمان به چند ژانر و چند بازه زمانی علاقه داشته باشد.
  • سیستم پیشنهاد غذا با در نظر گرفتن محدودیت‌ها: برچسب رژیم غذایی (کم کالری، بدون گلوتن، گیاهی) و برچسب ذائقه (شیرین، شور، تند) و هرکدام چندین مقدار.
این نوع مسائل معمولاً به روش‌های خاصی مانند سلسله‌مراتب کلاس‌ها (Hierarchical Classification) یا استفاده از شبکه‌های عصبی با چند خروجی (Multi-output models) حل می‌شوند. در این دوره، یک مقدمه کاربردی از این رویکرد پیشرفته ارائه می‌دهیم تا در پروژه‌های واقعی که پیچیدگی بالا دارند، مسیر درست را بشناسید.

بررسی روش‌های گوناگون ارزیابی مدل‌های مبتنی بر طبقه‌بندی

ساختن یک مدل طبقه‌بندی کافی نیست – باید بدانید مدل شما چقدر خوب کار می‌کند و در چه شرایطی خطا می‌دهد. روش‌های ارزیابی مدل‌های طبقه‌بندی به شما ابزاری می‌دهند تا عملکرد مدل را کمّی و Comparable کنید. مهم‌ترین معیارها و روش‌ها عبارتند از:
۱ – ماتریس درهم‌ریختگی (Confusion Matrix): یک جدول ۲×۲ برای دودویی که نشان می‌دهد:
TP (True Positive): درست مثبتTN (True Negative): درست منفیFP (False Positive): خطای نوع اولFN (False Negative): خطای نوع دوم
۲ – معیارهای مبتنی بر Confusion Matrix:
دقت (Accuracy): (TP+TN)/(Total) – ساده اما برای داده نامتوازن گمراه‌کننده است.صحت (Precision): TP/(TP+FP) – از بین مواردی که مثبت پیش‌بینی شد، چه نسبتی درست بود.فراخوانی (Recall یا Sensitivity): TP/(TP+FN) – از بین موارد واقعاً مثبت، چه نسبتی تشخیص داده شد.نمره F1 (F1-Score): میانگین هارمونیک Precision و Recall – معیار متوازن.
۳ – منحنی ROC و AUC: نمایش Trade-off بین True Positive Rate و False Positive Rate. AUC بین ۰.۵ (تصادفی) تا ۱ (عالی) – یکی از قدرتمندترین معیارها.
۴ – برای Multi-class: می‌توانید معیارها را به صورت میکرو (Micro-average) یا ماکرو (Macro-average) محاسبه کنید. classification_report در Scikit-learn همه را یکجا نشان می‌دهد.
۵ – ارزیابی با Cross-validation: ترکیب K-Fold با معیارهای بالا برای تخمین واقع‌بینانه.
در این دوره، با استفاده از sklearn.metrics، هر کدام از این معیارها را محاسبه، تفسیر و روی پروژه‌های واقعی اعمال خواهید کرد. یاد می‌گیرید چرا یک مدل با دقت ۹۹٪ ممکن است بی‌فایده باشد و چگونه بهترین معیار را برای مسئله خاص خود انتخاب کنید.

اشتراک گذاشتن این مطلب با دیگران