رانش یا گذار در داده‌ها (Data Drift)

پیش نیاز این درس:

درس داده‌کاوی و درس یادگیری ماشین را مطالعه کرده باشید

مدرس: مسعود کاویانی

در زندگی تنها تغییر است که ثابت می‌ماند – change is the only constant in life

آیا محله‌ای که در کودکی در آن‌جا زندگی می‌کردید طی ۲۰ سال گذشته تغییر کرده است؟ پاسخ احتمالاً مثبت خواهد بود. جهان در حال تغییر است و داده‌ها نیز در همین جهان زندگی می‌کنند، پس داده‌ها ممکن است پس از گذشت مدت زمانی تغییر کنند. این تغییرات در داده‌ها منجر به تغییر در الگوها نیز شده و احتمالاً مدل‌هایی که قبلاً بر روی داده‌ها یادگیری یا داده‌کاوی را انجام می‌دادند، با گذشت زمان، دقتی به مراتب پایین‌تر خواهند داشت.

رانش یا گذار در داده‌ها (data drift)، به تغییرات ذاتی در داده‌ها با گذشت زمان گفته می‌شود. برای مثال فرض کنید یک الگوریتمِ داده‌کاوی یا یادگیری ماشین دارید که می‌تواند از روی متن پیامک، تشخیص دهد که این پیام هرز (spam) هست یا خیر؟ (اگر با مفهوم داده‌کاوی یا یادگیری ماشین آشنایی ندارید این درس را مطالعه کنید). برای انجام این کار، مجموعه‌ای از پیامک‌ها (مثلاً ۱۰هزار پیامک) را انتخاب کرده و توسط یک متخصص هرزشناسی (spam detector) هر کدام از این پیامک‌ها را برچسب می‌زنیم. چیزی شبیه به جدول زیر:

مجموعه‌ی بالا یک مجموعه داده‌های آموزشی (training dataset) است که الگوریتم‌های داده‌کاوی و یادگیری ماشین از روی این داده‌ها یادگیری را انجام داده و سپس می‌توانند پیامک‌های جدید را به صورت خودکار برچسب‌زنی کنند.

فرض کنید الگوریتم بر روی این داده‌ها یادگیری را انجام داده و شما یک نرم‌افزار تشخیص پیامک هرز، با استفاده از همین الگوریتم ایجاد می‌کردید. بعد از گذشت چند ماه/یا چند سال، متن پیامک‌ها توسط شرکت‌های تبلیغاتی که پیامک ارسال می‌کنند، تغییر می‌کرد و یا ادبیات جدید وارد حوزه‌ی پیامکی بین مردم می‌شد. این تغییر در محتوا و متن پیامک‌ها باعث می‌شود که الگوریتمی که بر روی داده‌های قبلی (مجموعه‌ی آموزشی بالا) یادگیری را انجام داده، دیگر نتواند بر روی داده‌های جدید با همان دقت عمل کند. در واقع الگوریتم نتوانسته است تغییر یا همان رانش یا گذار در داده‌ها را تحمل کرده و همین امر باعث کاهشِ دقت الگوریتم بر روی داده‌ها (معمولاً بعد از گذشت مدت زمانی) می‌شود. این همان مفهوم رانش داده (data drift) است.

برای مقابله با رانش داده‌ها روش‌های مختلف و متعددی موجود است. برای مثال می‌توان الگوریتم را با استفاده از روش‌های بر خط (online) بر روی داده‌ها برازش کنیم. در مورد یادگیری برخط (online learning) در درس مربوطه صحبت کرده‌ایم. همچنین با استفاده از راهکارهای آماری و مقایسه‌ی توزیع داده‌ها با روش‌هایی مانند KL Divergence یا جنسون شنون (Jenson Shannon) نمونه‌ای از داده‌های جدید را به صورت دوره‌ای با داده‌های قبلی (که الگوریتم بر روی آن‌ها یادگرفته شده است)، مقایسه کرده تا بفهمیم که آیا داده‌ها دچار رانش شده است یا خیر. با این کار می‌توانیم به صورت دوره‌ای یک مجموعه‌ی داده‌ی آموزشی (مانند شکل بالا) ایجاد کرده و الگوریتم را هر چند وقت یک بار بر روی داده‌های جدید برازش کنیم.

ترتیب پیشنهادی خواندن درس‌های این مجموعه به صورت زیر است:

3 دیدگاه دربارهٔ «رانش یا گذار در داده‌ها (Data Drift)»

دیدگاهتان را بنویسید

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