اگر در حوزهی یادگیری ماشین و علوم داده کار میکنید، قطعا با توزیع نامتوازن کلاس دادهها مواجه شده اید. این مساله زمانی رخ میدهد که تعداد مشاهدات مربوط به یک کلاس به طور چشمگیری کمتر از مشاهداتی باشد که به کلاس دیگر تعلق دارند.
این مشکل بیشتر در سناریوهایی که کشف ناهنجاری ها در آنها حیاتی است، مثل سرقت الکتریسیته، کشف تقلب در سیستم بانکی، تشخیص بیماریهای نادر و غیره اهمیت زیادی پیدا میکند. در چنین وضعیتی، مدل پیشگویانه ای که با به کارگیری الگوریتم های یادگیری ماشین ایجاد شده است، جهت دار و یکطرفه شده و دقت آن بسیار پایین خواهد بود.
این اتفاق بدین خاطر میافتد که الگوریتمهای یادگیری ماشین معمولا طوری طراحی شدهاند که با کاهش خطا، دقت مدل را افزایش دهند. بنابراین، این الگوریتم ها توزیع/نسبت یک کلاس نسبت به کل کلاس ها، یا توازن کلاس ها را در محاسبات خود به حساب نمیآورند.
رویکردهای متنوعی برای حل مشکل دادههای نامتوازن وجود دارد که تکنیکهای نمونهبرداری مختلفی را بهکار میگیرند.
اینروزها یکی از چالشهای مهمی که صنعت انرژی با آن مواجه است، دزدی برق است. دزدی انرژی الکتریسیته در میان دزدیهای بزرگی که در دنیا انجام میگیرد، رتبهی سوم را به خود اختصاص داده است. به همین دلیل، شرکتهای تولید انرژی به طور فزایندهای از رویکردهای پیشرفته آنالیتیک و الگوریتم های یادگیری ماشین استفاده میکنند تا الگوهای مصرفی را که تعیین کنندهی دزدی الکتریسیته است تشخیص دهند.
در این میان، یکی از بزرگترین موانع و عوامل لغزش در تشخیص ناهنجاری در پروژه های یادگیری ماشین و داده کاوی ، غول آسا بودن تعداد داده ها و نامتوازن بودن توزیع آنهاست. تراکنشهای تقلبی به طور چشمگیری کمتر از تراکنشهای معمولی و سالم هستند و به عبارتی، حدود 1 تا دو درصد از تعداد کل مشاهدات هستند. سوال این است که چگونه میتوانیم تشخیص کلاس اقلیت و نادری را که مانع دستیابی به دقت کلی بالاتر است، بهبود دهیم؟
الگوریتمهای یادگیری ماشین در مواجهه با دیتاست های نامتوازن ، طبقهبندیهای نامناسبی را ایجاد میکنند. در یک دیتاست نامتوازن اگر رویدادی که میخواهیم پیش بینی کنیم به کلاس اقلیت تعلق داشته باشد و نرخ آن رویداد کمتر از 5 درصد باشد، معمولا یک رویداد نادر محسوب میشود.
اجازه بدهید این موضوع را به کمک یک مثال توضیح دهیم:
مثال: در یک دیتاست مربوط به کشف تقلب، دادههای زیر را داریم:
سوال اصلی که در حین تحلیل داده ها با آن مواجه میشویم، این است که با توجه به تعداد کم مشاهدات مربوط به کلاس نادر، چگونه به یک دیتاست متوازن دست یابیم که در آن تعداد مناسبی از نمونههای مشاهدات ناهنجار موجود باشد.
روشهای معمول ارزیابی مدل نمیتوانند در مواجهه با دادههای نامتوازن، عملکرد مدل را به طور دقیق اندازهگیری کنند.
سمتگیری الگوریتم های دسته بندی استاندارد مانند درخت تصمیم و رگرسیون لجستیک بیشتر به سوی کلاسهایی است که تعداد آنها در دیتاست بیشتر است. این الگوریتم ها فقط تمایل به پیشبینی کلاس اکثریت دارند و در مواجهه با ویژگی های کلاس اقلیت، با آنها بهعنوان نویز برخورد میکنند و اغلب آنها را نادیده میگیرند. به این ترتیب، احتمال دسته بندی اشتباه کلاس اقلیت در مقایسه با کلاس اکثریت بالاست.
ارزیابی عملکرد الگوریتم دسته بندی بهوسیلهی ماتریس اغتشاش انجام میگیرد که در آن اطلاعاتی دربارهی کلاسهای واقعی و کلاسهای پیشبینی شده قرار دارد.
با این وجود، در زمان کار کردن روی دیتاست نامتوازن، میزان دقت معیار مناسبی برای ارزیابی عملکرد مدل نیست. برای مثال وقتی هدف ما کشف ناهنجاری با نرخ رویداد 2 درصد است، یک مدل دسته بندی با دقت 98 درصد، اگر همهی نمونه ها را در کلاس اکثریت دسته بندی کند و مشاهدات مربوط به کلاس اقلیت 2 درصدی را بهعنوان داده نویز حذف کند، مدل دقیقی نیست.
به این ترتیب، وقتی میخواهیم چالشهای خاص کسب و کار را با مجموعه داده های نامتوازن حل کنیم، دسته بندی های ایجاد شده توسط الگوریتم های استاندارد یادگیری ماشین ممکن است نتایج دقیقی به ما ندهند. به غیر از تراکنشهای متقلبانه، سایر مثالهای مرتبط با داده های نامتوازن در یک کسب و کار رایج عبارتند از:
رویکردهای مختلفی برای مواجهه با داده های نامتوازن وجود دارند که در زیر فهرستی از آنها آورده شده است: