رفتن به محتوای اصلی
Koohestun
توضیح کوهستانداده‌های نامتوازنتشریح متدولوژی· 6 دقیقه مطالعه· در تحلیل داده

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

وقتی یک مجموعه داده به شدت نامتوازن است، دانشمندان داده باید بین تولید نمونه‌های مصنوعی یا جریمه کردن اشتباهات الگوریتم یکی را انتخاب کنند. یک ارزیابی شامل ۹۰۰۰ آزمایش نشان می‌دهد که کدام روش در عمل دقت پیش‌بینی را حفظ می‌کند.

به قلم آرش رضایی

نمونه‌گیران مجدد در سطح داده 35%جریمه‌کنندگان در سطح الگوریتم 35%کالیبره‌کنندگان پس از آموزش 30%
نمونه‌گیران مجدد در سطح داده
طرفداران تولید داده‌های مصنوعی برای ارائه نمونه‌های کافی به مدل‌ها جهت یادگیری کلاس اقلیت.
جریمه‌کنندگان در سطح الگوریتم
طرفداران دست‌نخورده گذاشتن داده‌ها و جریمه کردن الگوریتم به خاطر نادیده گرفتن کلاس اقلیت.
کالیبره‌کنندگان پس از آموزش
طرفداران آموزش یک مدل استاندارد و تنظیم آستانه تصمیم‌گیری پس از اتمام آموزش.

دیدگاه‌هایی که این گزارش پوشش نداده

  • متخصصان حوزه‌های تخصصی که داده‌های اضافی کلاس اقلیت را به صورت دستی برچسب‌گذاری می‌کنند
  • مهندسانی که به جای دقت خالص، مدل را برای کاهش تأخیر در استنتاج بهینه‌سازی می‌کنند

دانشمندان داده که طرفدار تولید الگوریتمی داده‌ها هستند، استدلال می‌کنند که مدل‌ها برای یادگیری مرزهای تصمیم‌گیری پیچیده در کلاس‌های اقلیت به نمونه‌های مصنوعی نیاز دارند. در مقابل، صاحب‌نظران آمار معتقدند که جعل داده‌ها توزیع احتمال واقعی و زیربنایی را مخدوش می‌کند و ترجیح می‌دهند خطاها را از طریق وزن‌دهی به کلاس‌ها (class weights) جریمه کنند. وقتی یک مجموعه داده شامل ۹۹ درصد تراکنش عادی و ۱ درصد تقلب باشد، معیارهای استاندارد دقت کاملاً ناکارآمد می‌شوند. یک مدل می‌تواند صرفاً با پیش‌بینی اینکه هیچ تقلبی وجود ندارد، به دقت ۹۹ درصدی دست یابد. برای اینکه الگوریتم مجبور شود به این رویداد نادر اهمیت دهد، متخصصان باید مداخله کنند. بحث بر سر نحوه انجام این کار حول دو فلسفه کاملاً متفاوت می‌چرخد: تغییر داده‌ها قبل از رسیدن به مدل، یا تغییر نحوه یادگیری مدل از داده‌هایی که از قبل در اختیار دارد.[4][5]

تکنیک بیش‌نمونه‌گیری اقلیت مصنوعی (SMOTE) رویکرد اول را اتخاذ می‌کند. این روش به جای کپی کردن ساده نمونه‌های نادر موجود - که منجر به بیش‌برازش (overfitting) شدید می‌شود - نقاط داده کاملاً جدیدی را جعل می‌کند. این الگوریتم یک نمونه از کلاس اقلیت را شناسایی کرده، نزدیک‌ترین همسایگان آن را در فضای ویژگی‌ها پیدا می‌کند و خطوطی بین آن‌ها می‌کشد. سپس نقاط مصنوعی را در امتداد این خطوط تولید می‌کند. این کار منطقه متراکم‌تر و پیوسته‌تری از کلاس اقلیت را برای یادگیری در اختیار الگوریتم قرار می‌دهد. برای یادگیرنده‌های ضعیف یا مجموعه داده‌های بسیار کوچک، این داربست مصنوعی می‌تواند تفاوت بین مدلی باشد که یک الگو را پیدا می‌کند و مدلی که هیچ چیز نمی‌یابد.[3][4]

وزن‌دهی به کلاس‌ها رویکرد مخالفی را در پیش می‌گیرد: مجموعه داده را دست‌نخورده باقی می‌گذارد و تابع زیان (loss function) الگوریتم را تغییر می‌دهد. در یک مدل استاندارد، هر دسته‌بندی اشتباه جریمه یکسانی دارد. وزن‌دهی کلاس‌ها ریاضیات را طوری تغییر می‌دهد که هزینه اشتباه در کلاس اقلیت بسیار بیشتر شود. مستندات scikit-learn اشاره می‌کند که روش اکتشافی "balanced" به طور خودکار وزن‌ها را "به نسبت معکوس با فراوانی کلاس‌ها در داده‌های ورودی" تنظیم می‌کند. اگر تقلب ۱ درصد از داده‌ها را تشکیل دهد، الگوریتم برای نادیده گرفتن یک تراکنش متقلبانه ۹۹ برابر بیشتر از دسته‌بندی اشتباه یک تراکنش عادی جریمه می‌شود. مدل مجبور است به کلاس نادر توجه کند، نه به این دلیل که نمونه‌های بیشتری از آن وجود دارد، بلکه به این دلیل که نادیده گرفتن آن امتیاز کلی مدل را از بین می‌برد.[2]

تکنیک SMOTE مجموعه داده را با تولید نمونه‌های مصنوعی تغییر می‌دهد، در حالی که وزن‌دهی کلاس‌ها تابع زیان الگوریتم را دگرگون می‌سازد.

چارچوب‌های مدرن تقویت گرادیان (gradient boosting) وزن‌های کلاس را به صورت بومی از طریق پارامترهایی که گرادیان کلاس مثبت را مقیاس‌بندی می‌کنند، مدیریت می‌کنند. مستندات XGBoost صراحتاً به کاربران توصیه می‌کند که برای داده‌های نامتوازن، "وزن‌های مثبت و منفی را متوازن کنند" و از پارامتر scale_pos_weight استفاده نمایند. از آنجا که مدل‌های مبتنی بر درخت، فضای ویژگی‌ها را با استفاده از تقسیم‌های متعامد بخش‌بندی می‌کنند، معرفی نقاط مصنوعی SMOTE می‌تواند درخت‌ها را مجبور کند تا برای تطبیق با داده‌های مصنوعی، شاخه‌های بیش از حد پیچیده و تکه‌تکه‌ای ایجاد کنند. با استفاده از وزن‌دهی کلاس‌ها به جای آن، درخت‌ها تقسیم‌های ساده‌تر و تعمیم‌یافته‌تری را حفظ می‌کنند و در عین حال در طول دوره‌های تقویت، خطاهای کلاس اقلیت را در اولویت قرار می‌دهند.[6]

چارچوب‌های مدرن تقویت گرادیان (gradient boosting) وزن‌های کلاس را به صورت بومی از طریق پارامترهایی که گرادیان کلاس مثبت را مقیاس‌بندی می‌کنند، مدیریت می‌کنند.

تنش بین این دو روش در فضاهای ویژگی با ابعاد بالا به وضوح نمایان می‌شود. از آنجا که SMOTE به طور کورکورانه بین نقاط درون‌یابی می‌کند، فرض را بر این می‌گذارد که فضای بین دو نمونه اقلیت نیز متعلق به کلاس اقلیت است. در مجموعه داده‌های پیچیده، این فرض اغلب با شکست مواجه می‌شود و نویز مصنوعی ایجاد می‌کند که مرز تصمیم‌گیری واقعی را محو می‌سازد. هنگامی که ارزیابی بر اساس سطح زیر منحنی دقت-فراخوانی (PR-AUC) - که دقیق‌ترین معیار برای داده‌های نامتوازن است - انجام می‌شود، SMOTE اغلب توانایی رتبه‌بندی زیربنایی مدل را کاهش می‌دهد. این روش فراخوانی (recall) را به قیمت افت فاجعه‌بار دقت (precision) به طور مصنوعی افزایش می‌دهد و مدلی ایجاد می‌کند که هشدارهای مثبت کاذب بسیار زیادی صادر می‌کند.[1][5]

یک مطالعه جامع در سال ۲۰۲۴ که در arXiv منتشر شد، این پویایی را در مقیاس وسیع آزمایش کرد. محققان ۹۰۰۰ آزمایش را روی ۱۵ مدل مختلف یادگیری ماشین و ۳۰ مجموعه داده نامتوازن اجرا کردند و SMOTE، وزن‌دهی کلاس‌ها و یک مدل پایه را با هم مقایسه کردند. نتایج تأیید کرد که هر دو مداخله به طور قابل‌توجهی بهتر از انجام ندادن هیچ کاری عمل می‌کنند. با این حال، این مطالعه نشان داد که وزن‌دهی کلاس‌ها اغلب با عملکرد SMOTE برابری می‌کند یا از آن فراتر می‌رود، بدون اینکه بار محاسباتی تولید داده‌های مصنوعی یا خطر معرفی نویز مصنوعی را به همراه داشته باشد.[1]

یک ارزیابی در سال ۲۰۲۴ شامل ۹۰۰۰ آزمایش نشان داد که اگرچه هر دو روش SMOTE و وزن‌دهی کلاس‌ها عملکرد را بهبود می‌بخشند، اما تنظیم آستانه تصمیم‌گیری اغلب از هر دو بهتر عمل می‌کند.

همین ارزیابی به راه‌حل سومی اشاره کرد که اغلب نادیده گرفته می‌شود: کالیبراسیون آستانه تصمیم‌گیری. هر دو روش SMOTE و وزن‌دهی کلاس‌ها سعی می‌کنند عدم توازن را در طول آموزش برطرف کنند. کالیبراسیون آستانه، یک مدل استاندارد را آموزش می‌دهد و سپس حد آستانه احتمال مورد نیاز برای پیش‌بینی کلاس اقلیت را تنظیم می‌کند. به جای نیاز به اطمینان ۵۰ درصدی برای اعلام تقلب، مدل ممکن است آن را در سطح ۱۰ درصد اعلام کند. نویسندگان خاطرنشان کردند که اگرچه هر سه استراتژی از مدل پایه بهتر عمل کردند، نتایج آن‌ها نشان داد که "کالیبراسیون آستانه تصمیم‌گیری به عنوان مؤثرترین و پایدارترین تکنیک ظاهر می‌شود." در سراسر این ۹۰۰۰ آزمایش، این تنظیم پس از آموزش، عملکرد بهتری نسبت به نمونه‌گیری مجدد در سطح داده و وزن‌دهی در سطح الگوریتم داشت.[1]

اجماع میان متخصصان مدرن در حال تغییر به سمت سلسله‌مراتبی از مداخلات است. از آنجا که وزن‌دهی به کلاس‌ها نیازی به دستکاری داده‌ها ندارد و هیچ هزینه محاسباتی اضافه نمی‌کند، به طور گسترده‌ای به عنوان ایمن‌ترین گام اول در نظر گرفته می‌شود. اگر وزن‌دهی کلاس‌ها نتواند الگوی اقلیت را به درستی ثبت کند و مجموعه داده به قدری کوچک باشد که مدل واقعاً نمونه‌ای برای یادگیری نداشته باشد، SMOTE به یک گزینه ارتقا یافته و منطقی تبدیل می‌شود. اما هیچ‌یک از این تکنیک‌ها نباید بدون آزمایش اولیه یک تنظیم ساده آستانه روی مدل پایه به کار گرفته شوند.[5]

انتخاب بین SMOTE و وزن‌دهی کلاس‌ها نشان‌دهنده انتخاب بین دو نوع متفاوت از اعوجاج است. یکی داده‌ها را مخدوش می‌کند تا با الگوریتم مطابقت داشته باشند، در حالی که دیگری هدف الگوریتم را مخدوش می‌کند تا با داده‌ها سازگار شود. با پیچیده‌تر شدن مدل‌های یادگیری ماشین و گسترش ابعاد مجموعه داده‌ها، ترجیح ریاضیاتی به طور فزاینده‌ای بر این است که داده‌ها دقیقاً همان‌طور که در دنیای واقعی ثبت شده‌اند باقی بمانند و بار انطباق به دوش خود الگوریتم منتقل شود.[5]

نکات کلیدی

  • داده‌های نامتوازن باعث شکست معیارهای استاندارد دقت می‌شوند و برای تشخیص رویدادهای نادر نیاز به مداخله دارند.
  • تکنیک SMOTE نقاط داده مصنوعی تولید می‌کند تا به یادگیری الگوریتم کمک کند، اما خطر ایجاد نویز مصنوعی در مجموعه داده‌های پیچیده را به همراه دارد.
  • وزن‌دهی کلاس‌ها الگوریتم را به خاطر نادیده گرفتن کلاس اقلیت جریمه می‌کند و مجموعه داده اصلی را از نظر ریاضی دست‌نخورده باقی می‌گذارد.
  • یک ارزیابی در سال ۲۰۲۴ شامل ۹۰۰۰ آزمایش نشان داد که تنظیم آستانه تصمیم‌گیری پس از آموزش، اغلب عملکرد بهتری نسبت به SMOTE و وزن‌دهی کلاس‌ها دارد.

چرا مهم است

داده‌های نامتوازن در تشخیص تقلب، تشخیص‌های پزشکی و امنیت سایبری یک امر پیش‌فرض هستند. انتخاب تکنیک اشتباه برای متوازن‌سازی می‌تواند به مدلی منجر شود که روی کاغذ بسیار دقیق به نظر می‌رسد، اما در تشخیص رویدادهای نادری که برای یافتن آن‌ها ساخته شده است، کاملاً شکست می‌خورد.

منابع

پوشش منابع

6 منبع

3 دیدگاه شناسایی‌شده

نمونه‌گیران مجدد در سطح داده 35%جریمه‌کنندگان در سطح الگوریتم 35%کالیبره‌کنندگان پس از آموزش 30%
  1. [1]arXivکالیبره‌کنندگان پس از آموزش

    Balancing the Scales: A Comprehensive Study on Tackling Class Imbalance in Binary Classification

    مطالعه در arXiv
  2. [2]scikit-learnجریمه‌کنندگان در سطح الگوریتم

    sklearn.utils.class_weight.compute_class_weight

    مطالعه در scikit-learn
  3. [3]imbalanced-learnنمونه‌گیران مجدد در سطح داده

    imblearn.over_sampling.SMOTE

    مطالعه در imbalanced-learn
  4. [4]Wikipediaنمونه‌گیران مجدد در سطح داده

    Oversampling and undersampling in data analysis

    مطالعه در Wikipedia
  5. [5]تیم سردبیری کوهستانکالیبره‌کنندگان پس از آموزش

    تحلیل تیم سردبیری کوهستان

    مطالعه در تیم سردبیری کوهستان
  6. [6]XGBoost Documentationجریمه‌کنندگان در سطح الگوریتم

    Notes on Parameter Tuning: Handle Imbalanced Dataset

    مطالعه در XGBoost Documentation

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

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