مدیریت دیتاست ها
پایتون و ابزارهای یادگیری عمیقداده کاوی و بیگ دیتایادگیری عمیق

مدیریت دیتاست‌های نامتوازن در مسائل رده‌بندی دودویی (بخش سوم)

0
زمان مطالعه: ۵ دقیقه

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

در این نوشتار که قسمت سوم است، یکی دیگر از روش‌هایی را بررسی می‌کنیم که مستقیماً بر روی خود الگوریتم مداخله می‌کند؛ این تکنیک با تابع زیان الگوریتم سروکار دارد.

ایده‌ کلی این تکنیک، مشابه با روش نقطه‌برش است که در قسمت قبلی توضیح دادیم. اگر چنین دیتاست نامتوازنی داشته باشیم:

تارگت کانت

هدف این است که الگوریتم قادر باشد منفی‌ها (نمونه‌های کلاس ۰) را نیز به‌درستی و با احتمال بالا تشخیص دهد و رده‌بندی کند، حتی اگر این کار به قیمت رده‌بندی اشتباه چند نمونه از کلاس مثبت (کلاس ۱) تمام شود. این کار را می‌توان با نامتقارن کردن تابع زیان انجام داد.

در این مثال، از تابع زیان آنتروپی متقاطع دودویی استفاده می‌کنیم، چون مسئله‌ای که در دست داریم، یک مسئله‌ رده‌بندی دودویی است:

رده بندی دودویی

توجه داشته باشید که p(x) مقدار پیش‌بینی‌شده‌ y است. اینجا p(x) را احتمال قرارگیری نمونه در کلاس ۱ در نظر می‌گیریم و احتمال قرارگیری در کلاس ۰ مکمل این مقدار یعنی ۱-p(x) است.

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

تابع آنتروپی متقاطع

در این معادله، w_2>w_1

برای درک بهتر تغییرات جریمه‌ مربوط به یک نمونه‌ مثبت کاذب، به تصاویر زیر دقت کنید:

دودویی

یک نمونه‌ پیش‌بینی‌شده از y داریم: ۸/۰=p(red)؛ پس با اینکه این نمونه در واقع متعلق به کلاس ۰ است، ولی در کلاس ۱ زده بندی شده است (مثبت کاذب). در شکل سمت راست، جریمه‌ تابع زیان متقارن را می‌بینید که کمتر از تابع زیان نامتقارن است (۶۱/۱ < 22/3). دلیل این مسئله این است که می‌خواهیم خطای چنین رده‌بندی اشتباهی را خیلی بیشتر از خطای یک منفی کاذب جریمه کنیم.

پیاده‌سازی در پایتون

برای پیاده‌سازی در پایتون از Keras به‌عنوان یک رده بند دودویی برای داده‌های مصنوعی خود استفاده می‌کنیم. بدین ترتیب، به‌سادگی می‌توانیم هنگام کامپایل کردن مدل، یک تابع سفارشی را به‌عنوان تابع زیان وارد کنیم.

ابتدا دیتاست نامتوازن خود را تعریف می‌کنیم و آن را به دو مجموعه‌ آموزشی و آزمایشی تقسیم می‌کنیم:

حال یک مدل متوالی خیلی ساده را از طریق Keras تعریف می‌کنیم.

3 روش برای ساخت سیستم پیشنهاددهنده

ابتدا می‌خواهیم نتایج تابع زیان متقارن را بررسی کنیم؛ به همین دلیل، مدل را با تابع آنتروپی متقاطع دودویی استاندارد کامپایل می‌کنیم:

همان‌طور که مشاهده می‌کنید، دقت مدل ۹۸ درصد است. بااین‌حال، همان‌طور که در مقاله‌ قبلی نشان دادیم، این می‌تواند یکی از عوارض جانبی رده‌بندی اشتباه کلاس اقلیت باشد. ماتریس درهم‌ریختگی این نتیجه را هم مشاهده می‌کنیم:

رده‌بندی اشتباه کلاس اقلیت

با اینکه این الگوریتم از رگرسیون لوجیستیک بهتر است، اما همچنان ۵۴ نمونه‌ منفی حقیقی را به اشتباه رده‌بندی کرده است! پس باید راهی برای تشخیص این نمونه‌ها پیدا کنیم. بنابراین، از رویکرد تابع زیان سفارشی استفاده می‌کنیم:

روش ساده ساخت سیستم توصیه گر

اینجا با استفاده از آنتروپی متقاطع تعبیه‌شده (همراه کمی تغییر)، یک ترفند هوشمندانه را به کار بردیم: یک تنسور از وزن‌ها را به نحوی تعریف کردیم که ورودی‌های منفی، وزن بیشتری (=۶۰) را به نسبت وردی های مثبت دریافت کند. دریافت کنند و بدین ترتیب، جریمه‌ رده‌بندی اشتباه آن‌ها نیز سنگین‌تر شود.

حال مدل را با این تابع جدید کامپایل می‌کنیم:

به ماتریس درهم‌ریختگی به‌دست‌آمده توجه کنید:

ماتریس درهم ریختگی

همان‌طور که ماتریس بالا نشان می‌دهد، مدل اکنون می‌تواند ۵۷ نمونه‌ منفی (۲۷ تا بیشتر از قبل) را به‌درستی رده‌بندی کند. می‌توانید مقادیر گوناگون و فرایندهای وزن‌دهی متفاوتی را امتحان کنید، تا به نتیجه‌ دلخواه خود برسید (که البته بستگی دارد به مسئله‌ای که در دست دارید). در ازای رسیدن به این نتیجه، چندین نمونه مثبت کاذب (۳۱۷) به دست آورده‌ایم؛ اینکه این نوع رده‌بندی اشتباه (افزایش مثبت‌های کاذب) برای شما قابل‌قبول است یا خیر به مسئله‌ شما و کاربرد آن بستگی دارد.

جمع‌بندی

سفارشی کردن تابع زیان، روش خوبی برای مدیریت داده‌های نامتوازن است. البته این فرایند (همچون تغییر نقطه‌برش‌ها) هزینه‌ای دارد و آن هم کاهش دقت کلی مدل است؛ اما باید به یک نکته توجه کرد؛ آن شرکت بیمه‌ای که قرار است از این الگوریتم استفاده کند، در صورتی احساس امنیت بیشتری خواهد داشت که الگوریتم بتواند معاملات کلاهبرداری را تشخیص دهد (هر چند به قیمت رده‌بندی اشتباه چند معامله‌ واقعی باشد) یا اگر الگوریتم از نظر اسمی دقت بالایی داشته باشد، اما بیشتر معاملات کلاهبرداری را نادیده بگیرد؟

پس می‌توان گفت، ابتدا باید اولویت‌ها در مسئله‌ موجود مشخص شود و سپس راهکاری مناسب انتخاب شود.

از طریق لینک زیر می‌توانید به بخش‌های اول و دوم دسترسی داشته باشید:

مدیریت دیتاست‌های نامتوازن در مسائل رده‌بندی دودویی (بخش اول)

مدیریت دیتاست‌های نامتوزان در مسائل رده‌بندی دودویی (بخش دوم)

این مطلب چه میزان برای شما مفید بوده است؟
[کل: ۰ میانگین: ۰]

دانشگاه سن‌دیه‌گو کالیفرنیا برگزار می‌کند: دوره رایگان طراحی و تکنیک‌های الگوریتمی

مقاله قبلی

مزاج‌شناسی مبتنی بر هوش مصنوعی، پیوندی علمی با طب سنتی

مقاله بعدی

شما همچنین ممکن است دوست داشته باشید

نظرات

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.