| فایل اولیهی سوال را میتوانید از [این لینک](/contest/assignments/84377/download_problem_initial_project/306372/) دانلود کنید.|
| :--: |
شرکت مخابراتی «**آوا تلکام**»، یکی از بازیگران قدیمی و خوشنام بازار ارتباطات ایران، در چند فصل اخیر با چالش جدیدی روبرو شده است. با ورود یک رقیب تهاجمی به بازار که با پیشنهادهای وسوسهانگیز و کمپینهای تبلیغاتی گسترده، سعی در جذب مشتریان شرکتهای دیگر دارد، **نرخ ریزش مشتریان** در آوا تلکام به شکل نگرانکنندهای افزایش یافته است.
تیم بازاریابی و فروش، استراتژیهای مختلفی مانند ارائه تخفیف و بستههای جدید را امتحان کردهاند، اما به نظر میرسد این راهحلها مقطعی بوده و مشکل اصلی را حل نمیکند. مدیران ارشد شرکت معتقدند که کلید حل این معما، در دادههای ارزشمندی نهفته است که تا به امروز به درستی از آنها استفاده نشده است: **صدای مشتریان**.
آوا تلکام هزاران ساعت مکالمه ضبطشده از تماسهای مشتریان با مرکز پشتیبانی را در اختیار دارد. این تماسها، که اخیراً با استفاده از تکنولوژیهای پیشرفته به متن تبدیل شدهاند، گنجینهای از شکایات، درخواستها، نیازها و احساسات واقعی مشتریان هستند.
**چالش اصلی اینجاست:** آیا میتوانیم قبل از اینکه مشتری تصمیم به رفتن بگیرد، با تحلیل ترکیبی از دادههای کلاسیک مشتری و متن گفتگوهای او با مرکز پشتیبانی، زنگ خطر را بشنویم و جلوی ریزش او را بگیریم؟
شما به عنوان دانشمند داده در تیم هوش تجاری آوا تلکام، مسئولیت این پروژه حیاتی را بر عهده گرفتهاید. موفقیت شما میتواند میلیونها تومان از هزینههای جذب مشتری جدید را صرفهجویی کرده و وفاداری مشتریان فعلی را به شرکت بازگرداند.
شما در نهایت باید سیستمی طراحی کنید که با توجه به ویژگیهای جمعآوری شده از مشتریان، **احتمال ریزش یا خروج مشتری** را پیشبینی کند؟
<details class="yellow">
<summary>**دادگان**</summary>
مجموعه داده مورد استفاده شامل ویژگیهای جمعآوری شده از مشتریان است که عبارتاند از:
| *نام ستون (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* | متغیر هدف؛ مشخص میکند که آیا مشتری ریزش کرده یا خیر |
</details>
# ارزیابی
برای ارزیابی مُدل شما از سطح زیر ناحیه نمودار ROC استفاده میشود. برای مطالعه بیشتر در مورد این نمودار میتوانید [ویکیپدیا](https://en.wikipedia.org/wiki/Receiver_operating_characteristic) یا [راهنمای کوتاه نکات و ترفندهای یادگیری ماشین](https://stanford.edu/~shervine/l/fa/teaching/cs-229/cheatsheet-machine-learning-tips-and-tricks) را مطالعه کنید.
نتیجه AUC ROC مُدل شما بر روی دادگان آزمایش در عدد ۱۰۰ ضرب شده و به عنوان امتیاز این مرحله در نظر گرفته میشود (بالاترین امتیاز ممکن از این مرحله ۱۰۰ میباشد).
داوری این سوال قبل از پایان مسابقه، تنها بر اساس ۳۰ درصد از دادگان آزمایش (`test`) خواهد بود. پس از اتمام مسابقه، برای بهروزرسانی نهایی جدول امتیازات از ۱۰۰ درصد دادگان آزمایش استفاده خواهد شد؛ این کار برای جلوگیری از بیشبرازش (`overfit`) روی دادگان آزمایش انجام میشود.
# خروجی
شما باید پس از ساخت سیستم خود، فایل `test.csv` را خوانده و به ازای هر آیدی یا کاربر موجود در آن مجموعه داده، **احتمال** ریزش هر کاربر را با توجه به ویژگیهای آن تخمین بزنید. در نهایت شما باید فایل *CSV* با نام `submission.csv` که هر سطر آن تخمین شما برای ریزش مشتری است را ساخته و به همراه **فایل کد** ارسال کنید.
| *custId* | *custExit* |
|:---------:|:----------:|
| m64861 | 0.22 |
| ... | ... |
| zk62733 | 0.53 |
نجات مشتریان در «آوا تلکام»
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.