
روشهای Bagging و Boosting به منظور رفع مشکل کلاسهای نامتوازن

وجود کلاسهای نامتوازن (Class Imbalance) در داده کاوی و رده بندی به یکی از چالشهای بزرگ در این زمینه تبدیل شده است. برای رفع این چالش روشهای گوناگونی وجود دارد که در ادامه به دو نوع از مهمترین روشهایی که در این زمینه به کار گرفته میشوند اشاره خواهد شد.
اصطلاح "مجموعه داده نامتوازن" عموما به مجموعه دادهای گفته میشود که در آن تعداد نمونههایی که نمایانگر یک کلاس هستند از نمونههای دیگر در کلاسهای متفاوت کمتر است. این حالت در کلاسه بندی زمانی مشکلساز میشوند که یک کلاس که عموما کلاس مطلق یا اقلیت (Minority Class) میباشد در مجموعه دادهها نشان داده نمیشود و به بیان دیگر تعداد مشاهدات اشتباه از مشاهدات درست در یک کلاس بیشتر میشود. این مشکل در مسائل واقعی از قبیل remote-sensing، کشف آلودگی، مدیریت ریسک، کشف تقلب و مخصوصا تشخیصهای پزشکی به کررات مشاهده شد است. در این موارد الگوریتم استاندارد کلاسه بندی کننده تمایل بیشتری به کلاسهای اکثریت (Majority Class) دارد، زیرا قوانینی که این نمونهها را به درستی پیشبینی میکنند به درستی وزندهی شده اند در حالی که قوانین خاصی که نمونههای کلاس اقلیت را پیشبینی میکنند عموما نادیده گرفته میشوند و در واقع به صورت نویز با آنها برخورد میشود و در نتیجه نمونههای کلاس اقلیت به اشتباه کلاسهبندی خواهد شد. برای مثال توزیع اریب دادهها به خودی خود باعث به تأخیر انداختن فرآیند یادگیری نمیشود، مشکلات دیگری از جمله: 1) حجم کم نمونه ها 2) همپوشانی و مشکلات تفکیک پذیری رده 3) وجود زیر مفاهیم (منظور الگوهایی است که در بین الگوهای اصلی وجود دارند و فراوانی کمتری را نسبت به الگوی اصلی دارند)، باعث مشکل تر شدن مسئله رده های نامتوازن می شود.
به منظور رسیدگی به مسائل مربوط به مجموعه دادههای نامتوازن تکنیکهای متعددی معرفی شده اند که در سه دسته زیر طبقه بندی میشوند:
رویکردهایی در سطح الگوریتم (Algorithm level approaches): این رویکرد به الگوریتمهای یادگیری کلاسه بند کمک میکند تا فرآیند یادگیری را به سمت کلاس اقلیت سوق دهد.
رویکردهایی در سطح داده ((Data level (or external): این رویکرد با بازنمونه گیری از فضای داده باعث تغییر توزیع دادهها میشود به طوری که تغییری در الگوریتم یادگیری ایجاد نمیشود و تلاش میکند در مرحله پیش پردازش تأثیرات ناشی از ناتوازنی را برطرف کند.
چارچوب یادگیری حساس به هزینه (Cost-sensitive learning framework): این رویکرد مابین رویکرد الگوریتمی و دادهای قرار دارد. به طوری که هم در سطح داده و هم در سطح الگوریتم تغییر ایجاد خواهد کرد. مهمترین نقطه ضعف این رویکرد تعریف هزینهی رده بندی نادرست میباشد که عموما در مجموعه داده وجود ندارند.
الگوریتم آموزشی Bagging:
Breiman از مفهوم Bootstrap Aggregating درایجاد تخمینهاي مختلف استفاده نموده است. اصولاً میتوان از تکنیک فوق به منظور ارزیابی دقت تخمینهاي بکار گرفته شده در روشهاي داده کاوي از طریق نمونه برداري با جایگزینی از دادههاي آموزشی استفاده نمود. در این تکنیک فرض بر آنست که مجموعهداده هاي آموزشی نماینده جامعه تحت بررسی بوده و انواع حالات تحقق یافته جامعه را میتوان از این مجموعه داده شبیه سازی نمود. بنابراین با استفاده از دوباره نمونه گیری توسط به کارگیری مجموعه دادههای مختلف تنوع مورد نیاز حاصل خواهد شد و زمانی که یک نمونه جدید وارد هرکدام از کلاسه بندها میشود، توافق اکثریتی به کار گرفته میشود تا کلاس مورد نظر تشخیص داده شود. Pasting small votes یک روش ازBagging میباشد که عموما برای مجموعه دادههای حجیم طراحی شده است. این مجموعه دادهها به زیرمجموعههای کوچکتری تقسیم میشوند که به منظور آموزش دستهکنندههای گوناگون به کار میرود. در این حالت دو نوع مختلف Rvotes و Ivotes وجود دارند که اولین مقدار زیرمجموعههایی به صورت تصادفی ایجاد میکند و دومین مقدار زیرمجموعههای متوالی بر پایه اهمیت این نمونهها ایجاد میکند. نمونههای مهم هم آن نمونههایی هستند که موجب افزایش تنوع در مجموعه داده میشوند. استفاده از توزیع موزون دادههای ضعیف و سخت است که باعث ساخت مجموعه داده میشود. دادههای سخت (Difficult instances) توسط دسته کنندههای out-of-bag شناسایی میشوند، به طوری که زمانی یک نمونه "سخت" در نظر گرفته میشود که توسط ensemble به صورت اشتباه کلاسه بندی شده است. این دادههای سخت همیشه به مجموعه دادههای بعدی اضافه میشوند در حالی که دادههای آسان شانس کمی برای داخل شدن به مجموعه دادهها را دارند.
الگوریتم آموزشی Boosting:
الگوریتم Boosting برای اولین بار توسط Schapire در سال 1990 به کار گرفته شد، به طوری که اثبات کرد که یک کلاسه کننده ضعیف زمانی میتواند تبدیل به یک کلاسهکننده قوی شود که در قالب (probably approximately correct (PAC قرار گیرد. Adaboost یکی از معروفترین الگوریتمهای این خانواده میباشد که جزء 10 الگوریتم برتر داده کاوی محسوب میشود. در این روش، اریبی در کنار واریانس کاهش مییابد و مانند ماشینهای بردار پشتیبان حاشیهها افزایش مییابند. این الگوریتم از کل مجموعه داده به منظور آموزش هر دستهکننده استفاده میکند، اما بعد از هر بار آموزش، بیشتر بر روی دادههای سخت تمرکز میکند تا به درستی کلاسه بندی شوند. اين روش تکراري تغيير انطباقي به توزيع داده ها آموزش با تمرکز بيشتر بر روي نمونه هايي است که قبلا بطور صحيح کلاس بندي نشده اند. در ابتدا تمام رکوردها وزن يکساني ميگيرند و برخلاف bagging وزن ها در هر تکرار افزایش پیدا خواهند کرد. وزن نمونه هايي که به اشتباه طبقه بندي شده اند افزايش خواهد يافت در حالی که آن دسته از نمونههایی که بدرستي کلاس بندي شده اند وزنشان کاهش خواهد يافت. سپس وزن دیگری به صورت مجزا به هر دستهکننده با توجه به دقت کلی آن اختصاص داده میشود که بعدا در فاز تست مورد استفاده قرار میگیرد. دستهکنندههای دقیق از ضریب اطمینان بالاتری برخوردار خواهند بود. در نهایت هنگام ارائه یک نمونه جدید هر دسته کننده یک وزن پیشنهاد میدهد و لیبل کلاس با رأی اکثریت انتخاب خواهد شد.
برگرفته از مقاله "A Review on Ensembles for the Class Imbalance Problem: Bagging-, Boosting-, and Hybrid-Based Approaches" نوشته شده توسط Mikel Galar و همکارانش
دیدگاهها
ممنون خوب بود
ولی اگر کاملتر گفته می شد بهتر بود
ممنون از مطالب مفیدتون
میشه لطفا ی فلوچارت از الگوریتم آدابوست بهم بدید ممنون میشم
خوراکخوان (آراساس) دیدگاههای این محتوا