دادههای نامتعادل
دادههای نامتعادل
دادههای نامتعادل (Imbalanced Data) یکی از چالشهای رایج در یادگیری ماشین و دادهکاوی است که در آن، توزیع کلاسها در مجموعه داده آموزشی به طور قابل توجهی نامتقارن است. به عبارت دیگر، یک یا چند کلاس دارای تعداد نمونههای بسیار کمتری نسبت به کلاسهای دیگر هستند. این عدم تعادل میتواند منجر به مدلهایی شود که به خوبی برای کلاس اکثریت (کلاسی که تعداد نمونههای بیشتری دارد) عمل میکنند، اما در شناسایی کلاس اقلیت (کلاسی که تعداد نمونههای کمتری دارد) ضعیف هستند. این مسئله به ویژه در کاربردهایی مانند تشخیص تقلب، تشخیص بیماریهای نادر، و تشخیص هرزنامه (Spam) اهمیت دارد، جایی که شناسایی صحیح نمونههای کلاس اقلیت حیاتی است.
چرا دادههای نامتعادل مشکلساز هستند؟
دلیل اصلی ایجاد مشکل، عملکرد الگوریتمهای یادگیری ماشین است. بسیاری از الگوریتمها به طور پیشفرض فرض میکنند که کلاسها به طور مساوی توزیع شدهاند. زمانی که این فرض نقض میشود، الگوریتم تمایل دارد به سمت بهینهسازی دقت کلی (Accuracy) برود و در نتیجه، شناسایی کلاس اقلیت را نادیده بگیرد.
- دقت (Accuracy) گمراهکننده است: در مجموعههای داده نامتعادل، دقت میتواند معیار گمراهکنندهای باشد. برای مثال، اگر 95% از دادهها متعلق به کلاس اکثریت باشند، یک مدل که همیشه کلاس اکثریت را پیشبینی میکند، دقت 95% را به دست میآورد، اما در شناسایی کلاس اقلیت کاملاً ناتوان است.
- سوگیری الگوریتم: الگوریتمها به طور طبیعی به سمت کلاسی که نمونههای بیشتری دارد، سوگیری پیدا میکنند.
- مشکل در یادگیری ویژگیهای کلاس اقلیت: تعداد کم نمونههای کلاس اقلیت باعث میشود که الگوریتم نتواند ویژگیهای مهم این کلاس را به خوبی یاد بگیرد.
مثالهایی از دادههای نامتعادل
- تشخیص تقلب در کارتهای اعتباری: تعداد تراکنشهای تقلبی در مقایسه با تراکنشهای قانونی بسیار کم است.
- تشخیص بیماریهای نادر: تعداد بیماران مبتلا به بیماریهای نادر در مقایسه با افراد سالم بسیار کم است.
- تشخیص هرزنامه: تعداد ایمیلهای هرزنامه در مقایسه با ایمیلهای معتبر معمولاً زیاد است، اما نسبت ایمیلهای مهم و هرزنامه میتواند بسیار نامتعادل باشد.
- تشخیص نقص در تولید: تعداد محصولات معیوب در مقایسه با محصولات سالم بسیار کم است.
- پیشبینی ترک مشتری (Churn Prediction): تعداد مشتریانی که از یک سرویس ترک میکنند، معمولاً کمتر از تعداد مشتریانی است که به استفاده از آن ادامه میدهند.
ارزیابی مدل در دادههای نامتعادل
همانطور که قبلاً اشاره شد، دقت (Accuracy) معیار مناسبی برای ارزیابی مدل در دادههای نامتعادل نیست. در عوض، باید از معیارهای دیگری استفاده کرد که حساسیت بیشتری به عملکرد مدل در شناسایی کلاس اقلیت داشته باشند.
- دقت (Precision): نسبت نمونههای پیشبینیشده مثبت که واقعاً مثبت هستند.
- بازخوانی (Recall): نسبت نمونههای مثبت واقعی که به درستی پیشبینی شدهاند.
- F1-Score: میانگین هارمونیک دقت و بازخوانی.
- منحنی ROC (Receiver Operating Characteristic): نموداری که عملکرد مدل را در آستانههای مختلف طبقهبندی نشان میدهد.
- AUC (Area Under the ROC Curve): مساحت زیر منحنی ROC که نشاندهنده توانایی مدل در تمایز بین کلاسها است.
- ماتریس درهمریختگی (Confusion Matrix): جدولی که تعداد نمونههای درست و غلط پیشبینی شده برای هر کلاس را نشان میدهد.
استراتژیهای مقابله با دادههای نامتعادل
چندین استراتژی برای مقابله با دادههای نامتعادل وجود دارد که میتوان به صورت زیر دستهبندی کرد:
- تغییر در الگوریتم: استفاده از الگوریتمهایی که به طور خاص برای دادههای نامتعادل طراحی شدهاند.
- تغییر در دادهها: تغییر توزیع دادهها به گونهای که تعادل بیشتری بین کلاسها ایجاد شود.
- تغییر در هزینه: تعیین هزینههای مختلف برای اشتباهات در پیشبینی کلاسهای مختلف.
تغییر در الگوریتم
- الگوریتمهای مبتنی بر درخت تصمیم (Decision Tree): الگوریتمهایی مانند درخت تصمیم و جنگل تصادفی (Random Forest) میتوانند نسبتاً خوب با دادههای نامتعادل مقابله کنند، اما همچنان ممکن است به بهبود نیاز داشته باشند.
- ماشینهای بردار پشتیبان (Support Vector Machines - SVM): با تنظیم پارامترهای مناسب، میتوان SVM را برای دادههای نامتعادل بهینه کرد.
- الگوریتمهای Ensemble: ترکیب چندین مدل مختلف میتواند به بهبود عملکرد در دادههای نامتعادل کمک کند.
- الگوریتمهای مبتنی بر فاصله: الگوریتمهایی مانند k-نزدیکترین همسایه (k-Nearest Neighbors) میتوانند در برخی موارد مفید باشند.
تغییر در دادهها
- نمونهبرداری بیش از حد (Oversampling): افزایش تعداد نمونههای کلاس اقلیت با ایجاد نمونههای جدید.
* SMOTE (Synthetic Minority Oversampling Technique): یک تکنیک محبوب برای نمونهبرداری بیش از حد که نمونههای جدید را با ترکیب نمونههای موجود کلاس اقلیت ایجاد میکند. * ADASYN (Adaptive Synthetic Sampling Approach): یک تکنیک مشابه SMOTE که بر روی تولید نمونههای بیشتر در مناطقی که یادگیری دشوارتر است، تمرکز میکند.
- نمونهبرداری کمتر (Undersampling): کاهش تعداد نمونههای کلاس اکثریت با حذف برخی از نمونهها.
* Random Undersampling: حذف تصادفی نمونهها از کلاس اکثریت. * Tomek Links: حذف نمونههایی از کلاس اکثریت که با نمونههای کلاس اقلیت در مجاورت هستند. * Cluster Centroids: جایگزینی خوشههای نمونههای کلاس اکثریت با مرکز آنها.
- ترکیب نمونهبرداری بیش از حد و کمتر (Hybrid Sampling): استفاده از ترکیبی از تکنیکهای نمونهبرداری بیش از حد و کمتر.
تغییر در هزینه
- وزندهی کلاسها (Class Weighting): اختصاص وزنهای مختلف به کلاسهای مختلف در طول آموزش مدل. وزنهای بالاتر به کلاس اقلیت اختصاص داده میشوند تا مدل بیشتر به شناسایی این کلاس توجه کند.
- تنظیم آستانه (Threshold Adjustment): تغییر آستانهای که برای طبقهبندی نمونهها استفاده میشود. کاهش آستانه باعث افزایش بازخوانی (Recall) و کاهش دقت (Precision) میشود، و بالعکس.
تکنیکهای پیشرفته
- استفاده از الگوریتمهای تشخیص ناهنجاری (Anomaly Detection): در برخی موارد، میتوان کلاس اقلیت را به عنوان ناهنجاری در نظر گرفت و از الگوریتمهای تشخیص ناهنجاری برای شناسایی آن استفاده کرد.
- یادگیری با هزینه (Cost-Sensitive Learning): یک رویکرد کلی که در آن هزینههای مختلفی به اشتباهات در پیشبینی کلاسهای مختلف اختصاص داده میشود.
- استفاده از روشهای Ensemble با وزندهی مناسب: ترکیب چندین مدل مختلف با وزندهی مناسب میتواند به بهبود عملکرد در دادههای نامتعادل کمک کند.
تحلیل تکنیکال و حجم معاملات در بازارهای مالی
در بازارهای مالی، دادههای نامتعادل در تحلیل تکنیکال و حجم معاملات نیز دیده میشوند. به عنوان مثال، سیگنالهای خرید (Buy Signals) معمولاً کمتر از سیگنالهای فروش (Sell Signals) هستند. در این موارد، استفاده از استراتژیهای نمونهبرداری بیش از حد یا وزندهی کلاسها میتواند به بهبود عملکرد مدلهای پیشبینی قیمت و حجم معاملات کمک کند.
- تشخیص الگوهای کندلاستیک: الگوهای کندلاستیک که نشاندهنده تغییر روند قیمت هستند، ممکن است به ندرت رخ دهند.
- تحلیل حجم معاملات: افزایش حجم معاملات در یک روند صعودی یا نزولی میتواند نشاندهنده قدرت روند باشد، اما این رویدادها ممکن است به ندرت رخ دهند.
- شناسایی نقاط شکست (Breakout Points): شناسایی زمانی که قیمت از یک سطح مقاومت یا حمایت عبور میکند، میتواند سیگنال مهمی باشد، اما این رویدادها ممکن است به ندرت رخ دهند.
- استفاده از اندیکاتورهای تکنیکال: برخی از اندیکاتورهای تکنیکال، مانند اندیکاتور MACD، سیگنالهای خرید و فروش کمتری تولید میکنند.
- تحلیل امواج الیوت (Elliott Wave Analysis): تشخیص امواج الیوت و پیشبینی امواج بعدی، میتواند دشوار باشد و به ندرت به طور دقیق انجام شود.
نتیجهگیری
دادههای نامتعادل یک چالش مهم در یادگیری ماشین و دادهکاوی هستند. با درک دلایل ایجاد این مشکل و استفاده از استراتژیهای مناسب، میتوان مدلهایی ایجاد کرد که به خوبی برای شناسایی کلاس اقلیت عمل کنند. انتخاب استراتژی مناسب بستگی به ویژگیهای مجموعه داده و کاربرد خاص دارد. مهم است که از معیارهای ارزیابی مناسب استفاده شود و عملکرد مدل در شناسایی کلاس اقلیت به دقت بررسی شود.
یادگیری ماشین دادهکاوی تشخیص تقلب تشخیص بیماری تشخیص هرزنامه دقت (Precision) بازخوانی (Recall) F1-Score منحنی ROC AUC ماتریس درهمریختگی درخت تصمیم جنگل تصادفی ماشینهای بردار پشتیبان k-نزدیکترین همسایه SMOTE ADASYN نمونهبرداری بیش از حد نمونهبرداری کمتر وزندهی کلاسها تنظیم آستانه یادگیری با هزینه الگوریتمهای تشخیص ناهنجاری تحلیل تکنیکال حجم معاملات الگوریتم MACD اندیکاتور RSI تحلیل امواج الیوت الگوریتمهای Ensemble
شروع معاملات الآن
ثبتنام در IQ Option (حداقل واریز $10) باز کردن حساب در Pocket Option (حداقل واریز $5)
به جامعه ما بپیوندید
در کانال تلگرام ما عضو شوید @strategybin و دسترسی پیدا کنید به: ✓ سیگنالهای معاملاتی روزانه ✓ تحلیلهای استراتژیک انحصاری ✓ هشدارهای مربوط به روند بازار ✓ مواد آموزشی برای مبتدیان