بررسی رویکردهای گوناگون دستهبندی دادهها و ارزیابی مدلهای طبقهبندی
بررسی رویکردهای مختلف دستهبندی اطلاعات
دستهبندی دادهها (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-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] نشان میدهد که کلاسهای اول، سوم و چهارم فعال هستند
دیدگاه خود را بنویسید