مجموعه داده‌ی نامتوازن (Imbalance) چیست؟

مدرس: مسعود کاویانی

اگر درس طبقه‌بندی (Classification) را خوانده باشید، می‌دانید که منظور ما از طبقه یا کلاس یا همان برچسب چیست. برای مثال در همان درسِ طبقه‌بندی دیدیم که مدیرِ یک بانک می‌خواست از روی ویژگی‌های مختلفِ مشتری‌ها، تصمیم بگیرد که به آن‌ها وام بدهد/یا خیر. پس مجموعه‌ی داده‌ای از مشتری‌های قبلی آماده می‌کرد و ویژگی‌های آن‌ها به همراه بازپرداخت وام را برای هر یک به دست می‌آورد و در مجموعه‌ی داده‌ی آموزشی قرار می‌داد. فرض کنید، از بین ۱۰هزار مشتری بانک، ۵هزار نفر آن‌ها توانسته باشند وام را پس دهند و ۵هزار نفر نتواسته باشند وام خود را پس دهند. پس در این‌جا یک مجموعه‌ی داده‌ی متوازن داریم به صورتی که هر کدام از طبقه‌ها به صورت تقریبی یک اندازه داده دارند و الگوریتمِ طبقه‌بندی می‌تواند الگوهای هر دسته را پیدا کرده و یادگیری خود را از روی این مجموعه‌ی داده انجام دهد. اما همه‌ی مجموعه‌ی داده‌ها به این صورت متوازن نیستند.

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

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

همان‌طور که مشاهده می‌کنید درصدِ بسیار کمی از تراکنش‌ها (شاید کمتر از یک دهم درصد) تراکنش‌های سرقتی هستند و اکثر تراکنش‌ها را تراکنش‌های عادی تشکیل می‌دهند. ما مجموعه‌ی داده‌ی بالا را به یک الگوریتم طبقه‌بندی تزریق می‌کنیم تا یادگیری را انجام دهد. در این مواقع نباید انتظار داشته باشیم که الگوریتم‌های طبقه‌بندی به درستی یاد بگیرد زیرا این الگوریتم‌ها عموماً به سمتِ طبقه‌هایی با برچسب اکثریت، تمایل پیدا می‌کنند. برای نمونه، در مثال بالا یک الگوریتم طبقه‌بندی عادی مانند SVM بعد از یادگیری از مجموعه‌ی داده‌ها، تمامیِ تراکنش‌های جدید را به عنوان تراکنش عادی طبقه‌بندی می‌کند!

در این شرایط معیار ارزیابی طبقه‌بندی نیز بایستی تغییر کند و نمی‌توان از معیارهای عادی مانند معیار دقت (Accuracy) استفاده کرد. چون برای مثال در همان مجموعه‌ی داده‌ی بالا، اگر یک الگوریتم تمامیِ نمونه‌های جدید را به عنوان تراکنش عادی تقسیم بندی کند، دقت تقریباً ۹۹/۹۹ درصد می‌شود ولی حتماً می‌دانید که در این دست از مسائل، نمی‌توانیم به این معیار دقت (Accuracy) اعتماد کنیم.

در این شرایط بایستی از روش‌های مختلف متعادل‌سازی داده‌ها (Data Balancing) و یا الگوریتم‌های خاصی استفاده کرد. البته این داده‌های نامتوازن فقط در دسته‌ی مسائل طبقه‌بندی نیستند و ممکن است در مسائل خوشه‌بندی نیز داده‌های نامتوازن داشته باشیم که راه‌حل‌های مربوط به خود را دارد.

ترتیب پیشنهادی خواندن درس‌های این مجموعه به صورت زیر است:

4 دیدگاه دربارهٔ «مجموعه داده‌ی نامتوازن (Imbalance) چیست؟»

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *