مجموعه دادههای طبقهبندی با نسبتهای کلاسی منحرف نامتعادل نامیده میشود. کلاس هایی که بخش بزرگی از مجموعه داده ها را تشکیل می دهند، طبقات اکثریت نامیده می شوند. آنهایی که نسبت کمتری را تشکیل می دهند طبقات اقلیت هستند.
چه چیزی به عنوان نامتعادل به حساب می آید؟ همانطور که جدول زیر نشان می دهد، پاسخ می تواند از خفیف تا شدید متغیر باشد.
درجه عدم تعادل | نسبت طبقه اقلیت |
---|---|
خفیف | 20-40٪ از مجموعه داده ها |
در حد متوسط | 1-20٪ از مجموعه داده ها |
مفرط | <1٪ از مجموعه داده ها |
چرا مراقب داده های نامتعادل باشیم؟ اگر یک کار طبقه بندی با مجموعه داده نامتعادل دارید، ممکن است نیاز به استفاده از یک تکنیک نمونه برداری خاص داشته باشید.
مثال زیر را از مدلی که تقلب را تشخیص می دهد در نظر بگیرید. موارد تقلب یک بار در هر 200 تراکنش در این مجموعه داده اتفاق می افتد، بنابراین در توزیع واقعی، حدود 0.5٪ از داده ها مثبت است.
چرا این مشکل ساز خواهد بود؟ با وجود نکات مثبت بسیار کمی نسبت به موارد منفی، مدل آموزشی بیشتر وقت خود را صرف مثال های منفی می کند و به اندازه کافی از نمونه های مثبت یاد نمی گیرد. به عنوان مثال، اگر اندازه دسته شما 128 باشد، بسیاری از دسته ها هیچ نمونه مثبتی نخواهند داشت، بنابراین گرادیان ها اطلاعات کمتری خواهند داشت.
اگر مجموعه دادهای نامتعادل دارید، ابتدا آموزش توزیع واقعی را امتحان کنید. اگر مدل به خوبی کار می کند و تعمیم می دهد، کار تمام است! در غیر این صورت، روش کاهش نمونه و افزایش وزن را امتحان کنید.
Downsampling و Upweighting
یک راه موثر برای مدیریت داده های نامتعادل، کاهش نمونه و افزایش وزن طبقه اکثریت است. بیایید با تعریف آن دو اصطلاح جدید شروع کنیم:
- نمونه برداری (در این زمینه) به معنای آموزش در زیر مجموعه ای نامتناسب از نمونه های کلاس اکثریت است.
- Upweighting به معنای اضافه کردن یک وزن مثال به کلاس پاییننمونهشده برابر با فاکتوری است که به وسیله آن نمونهبرداری کردهاید.
مرحله 1: از کلاس اکثریت نمونه برداری کنید. دوباره مثال ما از مجموعه داده های تقلب را با 1 مثبت تا 200 منفی در نظر بگیرید. کاهش نمونه با ضریب 10 تعادل را به 1 مثبت تا 20 منفی (5٪) بهبود می بخشد. اگرچه مجموعه تمرینی به دست آمده هنوز نسبتاً نامتعادل است، نسبت نکات مثبت به منفی بسیار بهتر از نسبت بسیار نامتعادل اصلی (0.5٪) است.
مرحله 2: بالا بردن وزن کلاس پاییننمونهشده : آخرین مرحله اضافه کردن وزنهای نمونه به کلاس نمونهبرداری شده است. از آنجایی که ما با ضریب 10 نمونه برداری کردیم، وزن نمونه باید 10 باشد.
ممکن است زمانی که اصطلاح وزن به پارامترهای مدل، مانند اتصالات در یک شبکه عصبی اشاره دارد، به شنیدن واژه وزن عادت کرده باشید. در اینجا ما در مورد وزنه های مثال صحبت می کنیم، به این معنی که شمارش یک مثال فردی مهمتر در طول تمرین است. وزن مثال 10 به این معنی است که مدل به عنوان مثال 10 برابر مهمتر از وزن 1 (هنگام محاسبه ضرر) رفتار می کند.
وزن باید برابر با فاکتوری باشد که برای نمونه برداری استفاده کردید:
\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]
چرا Downsample و Upweight؟
ممکن است عجیب به نظر برسد که وزنهای نمونه را پس از نمونهگیری پایین اضافه کنید. ما در تلاش بودیم تا مدل خود را در طبقه اقلیت بهبود بخشیم - چرا اکثریت را بالا ببریم؟ اینها تغییرات حاصله است:
- همگرایی سریعتر : در طول آموزش، ما اغلب کلاس اقلیت را می بینیم که به همگرایی سریعتر مدل کمک می کند.
- فضای دیسک : با ادغام کلاس اکثریت به نمونههای کمتر با وزنهای بزرگتر، فضای دیسک کمتری را برای ذخیره آنها صرف میکنیم. این صرفه جویی فضای دیسک بیشتری را برای کلاس اقلیت فراهم می کند، بنابراین می توانیم تعداد بیشتر و طیف وسیع تری از نمونه ها را از آن کلاس جمع آوری کنیم.
- کالیبراسیون : افزایش وزن تضمین می کند که مدل ما هنوز کالیبره شده است. خروجی ها همچنان می توانند به عنوان احتمالات تفسیر شوند.