دیپ تیپ

خانه » نمونه گیری Oversampling و Undersampling در داده های نامتوازن

نمونه گیری Oversampling و Undersampling در داده های نامتوازن


داده های نامتوازن یکی از مشکلات موجود در طبقه بندی داده ها می باشد. داده های نامتوازن داده هایی هستند که نسبت کلاس ها در آن بسیار متفاوت باهم هستند.اگر ۹۰٪ داد ها مربوط به یک کلاس و ۱۰٪ داده هامربوط به کلاس دیگر(کلاس غالب یا اکثریت) باشد آن گاه داده ها نامتوازن هستند.در یادگیری ماشین نمونه گیری Undersampling و نمونه گیری Oversampling دو روش هستند که با در برخورد با داده های نامتوازن به کار می روند.می توانید از کلاس اکثریت کم نمونه گیری کنید یا روی کلاس اقلیت را بیش نمونه گیری انجام دهید یا از ترکیب هر دو روش استفاده کنید دلیل اینکه ما طبقه بندی نامتوازن را به عنوان یک مشکل شناسایی می کنیم ، این است که می تواند بر عملکرد الگوریتم های یادگیری ماشین تأثیر بگذارد.

نمونه گیری Oversampling و Undersampling در داده های نامتوازن

دو روش برای مقابله با داده های نامتوازن وجود دارد:

  • Oversampling بیش نمونه گیری
  • Undersampling کم نمونه گیری

در نمونه گیری Oversampling سعی می شود از کلاس اقلیت نمونه های بیشتر ایجاد شود تا نسبت کلاس ها به هم نزدیک شود. همچنین در Undersampling سعی می شود از کلاس حداکثر نمونه گیری کنیم. در واقع در این روش ما از همه نمونه ها در کلاس بیشتر استفاده نمی کنیم تا نسبت کلاس ها به یکدیگر نزدیک شود.

در این مقاله قصد داریم یادگیری نامتوازن یا imbalanced-learn را به صورت عملی پیاده سازی کنیم. در چند اخیر سال کار بر روی داده های نامتوازن با روش های Oversampling و Undersampling بسیار بیشتر شده است و روش های جدیدی برای حل داده های نا متوازن ایجاد شده است. برای راهنمایی و نصب کتابخانه های مورد نیاز می توانید اینجا را مطالعه کنید.

ابتدا کتابخانه های مورد نیاز را اضافه می کنیم و یک مجموعه داده نا متوازن با استفاده از متد make_classification ایجاد می کنیم.

نمونه برداری Oversampling بیش نمونه گیری

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

استفاده از روش های نمونه برداری برای داده های نا متوازن برای بسیاری از الگوریتم های یادگیری ماشین مانند شبکه های عصبی SVM بسیار موثر است. اما تنظیم درست نسبت د اده ها بسیار با اهمیت است چون ما یا در حال کپی کردن داده های موجود یا حذف نمونه ها هستیم. اگر این نمونه گیری ها بیدون دقت انجام شود در نتیجه نهایی کار بسیار با اهمیت خواهد بود.

مورد دیگری که باید از آن آگاه باشیم افزایش هزینه محاسباتی است. افزایش تعداد نمونه ها در کلاس اقلیت (به ویژه برای یک مجموعه داده به شدت نا متوازن) ممکن است منجر به افزایش محاسبات شود که این چیز خوبی نیست.

با این وجود ، Oversampling یک راه حل مناسب است . در اینجا نحوه اجرای آن در پایتون آورده شده است …

نمونه برداری Undersampling کم نمونه گیری


نمونه گیری Undersampling برعکس نمونه برداری Oversampling است. این روش به دنبال انتخاب و حذف نمونه ها از کلاس اکثریت به طور تصادفی است ، در نتیجه تعداد مثال ها را در کلاس اکثریت در داده ها کاهش می دهد.

مانند روش Oversampling روش Undersampling بر روی الگوریتم های یادگیری ماشین بسیار موثر است. فقط باید نسبت و تعداد داده های حذف شده به دقت محاسبه شود.

در روش کم نمونه گیری باید بدانیم که در حال حذف داده های درست و ارزشمند هستیم که باعث می شود تا جای مقدور از حذف داده ها جلوگیری شود.

برای فهم بیشتر موضوع به پیاده سازی این روش دقت کنید.

ترکیب هر دو روش نمونه گیری تصادفی


ترکیب هر دو روش نمونه گیری Undersampling و Oversampling تصادفی می تواند منجر به بهبود عملکرد کلی در مقایسه با روشهای جداگانه شود.
به این معنی که ما می توانیم مقدار کمی از کلاس اکثریت حذف کنیم و تعداد کم تری به کلاس اقلیت اضافه کنیم. این روش سعی می کند معایب روش های قبلی را نداشته باشد و از محاسن آن ها استفاده کند.
پیاده سازی این روش با پایتون به صورت زیر است.

جمع بندی

در این مطلب در مورد داده های نامتوازن صحبت کردیم. به صورت کلی دو روش برای کار با داده های نامتوازن وجود دارد. مزایا و معایب هر کدام معرفی شد و دیدیم که ترکیب هر دو روش می تواند نتیجه بهتری ایجاد کند.

دیدگاه‌ خود را بنویسید

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

به بالای صفحه بردن