فایل اولیه‌ی سوال را می‌توانید از این لینک دانلود کنید.

شرکت مخابراتی «آوا تلکام»، یکی از بازیگران قدیمی و خوش‌نام بازار ارتباطات ایران، در چند فصل اخیر با چالش جدیدی روبرو شده است. با ورود یک رقیب تهاجمی به بازار که با پیشنهادهای وسوسه‌انگیز و کمپین‌های تبلیغاتی گسترده، سعی در جذب مشتریان شرکت‌های دیگر دارد، نرخ ریزش مشتریان در آوا تلکام به شکل نگران‌کننده‌ای افزایش یافته است.

تیم بازاریابی و فروش، استراتژی‌های مختلفی مانند ارائه تخفیف و بسته‌های جدید را امتحان کرده‌اند، اما به نظر می‌رسد این راه‌حل‌ها مقطعی بوده و مشکل اصلی را حل نمی‌کند. مدیران ارشد شرکت معتقدند که کلید حل این معما، در داده‌های ارزشمندی نهفته است که تا به امروز به درستی از آن‌ها استفاده نشده است: صدای مشتریان.

آوا تلکام هزاران ساعت مکالمه ضبط‌شده از تماس‌های مشتریان با مرکز پشتیبانی را در اختیار دارد. این تماس‌ها، که اخیراً با استفاده از تکنولوژی‌های پیشرفته به متن تبدیل شده‌اند، گنجینه‌ای از شکایات، درخواست‌ها، نیازها و احساسات واقعی مشتریان هستند.

چالش اصلی اینجاست: آیا می‌توانیم قبل از اینکه مشتری تصمیم به رفتن بگیرد، با تحلیل ترکیبی از داده‌های کلاسیک مشتری و متن گفتگوهای او با مرکز پشتیبانی، زنگ خطر را بشنویم و جلوی ریزش او را بگیریم؟

شما به عنوان دانشمند داده در تیم هوش تجاری آوا تلکام، مسئولیت این پروژه حیاتی را بر عهده گرفته‌اید. موفقیت شما می‌تواند میلیون‌ها تومان از هزینه‌های جذب مشتری جدید را صرفه‌جویی کرده و وفاداری مشتریان فعلی را به شرکت بازگرداند.

شما در نهایت باید سیستمی طراحی کنید که با توجه به ویژگی‌های جمع‌آوری شده از مشتریان، احتمال ریزش یا خروج مشتری را پیش‌بینی کند؟

دادگان

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

نام ستون (Column Name) توضیح مختصر
custId شناسه منحصر به فرد هر مشتری
sex جنسیت مشتری
isElderly مشخص می‌کند که آیا مشتری سالمند است یا خیر
partner مشخص می‌کند که آیا مشتری متاهل است یا خیر
dependents مشخص می‌کند که آیا مشتری افراد تحت تکفل دارد یا خیر
membershipDuration مدت زمان عضویت مشتری (معمولاً به ماه)
agreementTerm نوع قرارداد مشتری (مثلاً ماهانه، یک ساله، دو ساله)
acquisitionChannel کانالی که مشتری از طریق آن جذب شده است (مثلاً آنلاین)
phoneService آیا مشتری سرویس تلفن دارد یا خیر
multipleLines آیا مشتری بیش از یک خط تلفن دارد یا خیر
internetService نوع سرویس اینترنت مشتری (مثلاً DSL یا فیبر نوری)
monthlyDataUsageGb میانگین حجم اینترنت مصرفی ماهانه مشتری (به گیگابایت)
cyberProtectionService آیا مشتری سرویس محافظت سایبری دارد یا خیر
onlineBackup آیا مشتری سرویس پشتیبان‌گیری آنلاین دارد یا خیر
deviceProtection آیا مشتری سرویس محافظت از دستگاه دارد یا خیر
techSupport آیا مشتری سرویس پشتیبانی فنی دارد یا خیر
streamingTv آیا مشتری سرویس پخش آنلاین تلویزیون دارد یا خیر
streamingMovies آیا مشتری سرویس پخش آنلاین فیلم دارد یا خیر
recurringFee هزینه ثابت ماهانه مشتری
cumulativeSpend مجموع تمام هزینه‌هایی که مشتری پرداخت کرده است
transactionMethod روش پرداخت مشتری
paperlessBilling آیا مشتری از صورتحساب الکترونیکی استفاده می‌کند یا خیر
billingIssues تعداد مشکلات مربوط به صورتحساب که مشتری داشته است
supportTickets تعداد تیکت‌های پشتیبانی که مشتری ثبت کرده است
lastContactRating امتیازی که مشتری به آخرین تماس خود با پشتیبانی داده است
serviceSatisfactionScore امتیاز کلی رضایت مشتری از خدمات
mobileAppSatisfaction امتیاز رضایت مشتری از اپلیکیشن موبایل
networkStabilityScore امتیاز پایداری شبکه برای مشتری
avgNetworkLatencyMs میانگین تاخیر شبکه (پینگ) برای مشتری به میلی‌ثانیه
dataLimitWarnings تعداد هشدارهای اتمام حجم اینترنت که مشتری دریافت کرده
loyaltyPoints امتیاز وفاداری مشتری
customerFeedback بازخورد کیفی ثبت شده توسط مشتری
competitorOffers آیا مشتری پیشنهادهایی از شرکت‌های رقیب دریافت کرده است
custExit متغیر هدف؛ مشخص می‌کند که آیا مشتری ریزش کرده یا خیر

ارزیابی

برای ارزیابی مُدل شما از سطح زیر ناحیه نمودار ROC استفاده می‌شود. برای مطالعه بیشتر در مورد این نمودار می‌توانید ویکی‌پدیا یا راهنمای کوتاه نکات و ترفندهای یادگیری ماشین را مطالعه کنید.

نتیجه AUC ROC مُدل شما بر روی دادگان آزمایش در عدد ۱۰۰ ضرب شده و به عنوان امتیاز این مرحله در نظر گرفته می‌شود (بالاترین امتیاز ممکن از این مرحله ۱۰۰ می‌باشد).

داوری این سوال قبل از پایان مسابقه، تنها بر اساس ۳۰ درصد از دادگان آزمایش (test) خواهد بود. پس از اتمام مسابقه، برای به‌روزرسانی نهایی جدول امتیازات از ۱۰۰ درصد دادگان آزمایش استفاده خواهد شد؛ این کار برای جلوگیری از بیش‌برازش (overfit‍‍‍) روی دادگان آزمایش انجام می‌شود.

خروجی

شما باید پس از ساخت سیستم خود، فایل test.csv را خوانده و به ازای هر آیدی یا کاربر موجود در آن مجموعه داده، احتمال ریزش هر کاربر را با توجه به ویژگی‌های آن تخمین بزنید. در نهایت شما باید فایل CSV با نام submission.csv که هر سطر آن تخمین شما برای ریزش مشتری است را ساخته و ارسال کنید.

custId custExit
m64861 0.22
... ...
zk62733 0.53
ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.