| فایل اولیهی مسئله را میتوانید از [این لینک](/contest/assignments/103149/download_problem_initial_project/356093/) دانلود کنید. |
| :--: |
به دپارتمان تحلیل داده و استراتژی **«راکاستار»** خوش آمدید! خالق یکی از بزرگترین و سودآورترین بازیهای تاریخ: **Grand Theft Auto V**.
با گذشت بیش از یک دهه از عرضه بازی، اقتصاد و رفتار بازیکنان ما تغییرات شگرفی کرده است. حال **Rockstar** برای فروش حداکثری نسخه جدید بازی خود نیاز به پیشبینی نحوه فروش و سود خود دارد اما به یک مشکل جدی برخورد کرده و برای حل این مشکلات شما را استخدام کرده است.
به دلیل یک نقص در سرورهای قدیمی، دادههای مربوط به **میزان درآمد ناخالص** در ۶۰ درصد از رکوردهای سالهای گذشته پاک شدهاند. بدتر از آن، برای ماههای آینده، نمیدانیم چه درصدی از بازیکنان بازی را به صورت **دیجیتال** و چه درصدی به صورت **فیزیکی** خریداری میکنند تا بودجههای توزیع و بازاریابی را تنظیم کنیم.
شما به تیم ملحق شدهاید تا این بحران را حل کنید. مدیر مارکتینگ از شما یک سیستم جامع میخواهد: سیستمی که بتواند با بررسی رفتار گذشته، به طور همزمان پیشبینی کند که یک رکورد فروش مربوط به کدام **کانال فروش (فیزیکی یا دیجیتال)** است و **درآمد دقیق** حاصل از آن چقدر خواهد بود.

<details class="green">
<summary>**ساختار داده**</summary>
تیم مهندسی داده، اطلاعات استخراجشده را در قالب دو فایل `train.csv` و `test.csv` در اختیار شما قرار داده است. توجه کنید که در فایل آموزش، ۶۰٪ از مقادیر درآمد خالی است و در فایل تست، هر دو ستون هدف به طور کامل حذف شدهاند تا شما آنها را پیشبینی کنید. جزئیات ستونهای این دیتاست به شرح زیر است:
| **نام ستون** | **توضیحات** |
| --- | --- |
| `transaction_id` | شناسه منحصربهفرد هر رکورد در دیتاست |
| `year` | سال تقویمی ثبت رکورد |
| `month` | ماه تقویمی ثبت رکورد (۱ تا ۱۲) |
| `quarter` | سهماهه مالی مشتقشده از ماه (۱ تا ۴) |
| `country` | نام کشوری که فروش در آن انجام شده است |
| `iso3_code` | کد سهحرفی ایزو (ISO 3166-1 alpha-3) برای کشور |
| `region` | قاره یا منطقه جغرافیایی کشور |
| `platform` | پلتفرم بازی (مانند PS3, PS4, PC, Xbox Series X|S) |
| `game_edition` | نسخه خریداری شده بازی (Standard, Premium, Legacy, و ...) |
| `units_sold` | تعداد نسخههای فروختهشده در آن ماه/کشور/پلتفرم |
| `new_customers` | تعداد خریدارانی که برای اولین بار در آن دوره خرید کردهاند |
| `returning_customers` | تعداد خریداران تکراری (کسانی که قبلاً هم خرید داشتهاند) |
| `estimated_active_players` | تخمین تعداد بازیکنان فعال یکتا |
| `peak_concurrent_players` | بالاترین تعداد بازیکن همزمان ثبتشده در آن ماه |
| `online_players` | تعداد بازیکنان فعال در هر کدام از بخشهای آنلاین |
| `story_mode_players` | تعداد بازیکنان درگیر با محتوای داستانی (تکنفره) |
| `gta_online_players` | تعداد بازیکنان فعال مشخصاً در بخش GTA Online |
| `average_playtime_hours` | میانگین ساعات بازی به ازای هر بازیکن فعال در آن ماه |
| `average_session_length_minutes` | میانگین طول هر نشست (Session) بازی به دقیقه |
| `holiday_season` | آیا فروش در فصل تعطیلات (نوامبر، دسامبر، ژانویه) بوده است؟ (0 یا 1) |
| `major_sale_event` | نام رویداد فروش ویژه فعال در آن ماه (در صورت وجود) |
| `marketing_campaign` | آیا در آن دوره کمپین بازاریابی فعال بوده است؟ (0 یا 1) |
| `customer_rating` | میانگین امتیاز ثبتشده توسط کاربران (از ۴.۲ تا ۵.۰) |
| `review_count` | تعداد نقدهای ثبتشده |
| `refund_rate_percentage` | درصد خریدهای پسدادهشده (Refund) |
| `currency` | کد ارز محلی کشور هدف |
| `exchange_rate_to_usd` | نرخ تبدیل ارز محلی به دلار در زمان فروش |
| `internet_penetration_percentage` | درصد نفوذ اینترنت در کشور هدف |
| `gaming_market_size` | تخمین حجم نسبی بازار گیمینگ در کشور |
| `population_millions` | جمعیت کشور هدف به میلیون نفر |
| `gdp_per_capita_usd` | تولید ناخالص داخلی سرانه کشور به دلار (نشاندهنده قدرت خرید) |
| `release_phase` | مرحله چرخه عمر انتشار پلتفرم (Launch, Growth, Mature, Legacy) |
| `weekend_sales_percentage` | درصد سهم فروش در روزهای آخر هفته |
| `weekday_sales_percentage` | درصد سهم فروش در روزهای وسط هفته |
| `season` | فصل هواشناسی (Winter, Spring, Summer, Autumn) |
| `special_event` | رویداد خاصی که باعث تحریک فروش شده (مثلاً عرضه یک آپدیت بزرگ) |
| `top_game_category` | دستهبندی اصلی ژانر بازی (Action-Adventure) |
| `platform_generation` | نسل کنسول بازی (مانند Gen7, Gen8, Gen9, PC) |
| `gross_revenue_usd` | **(ستون هدف اول - رگرسیون):** درآمد ناخالص به دست آمده به دلار |
| `sales_channel` | **(ستون هدف دوم - طبقهبندی):** کانال فروش که مقادیر آن `Physical` یا `Digital` است |
</details>
### **فرمت خروجی پیشبینیها**
مدل شما باید برای تمام ردیفهای موجود در فایل تست، پیشبینیهای خود را انجام دهد. در فایل نوتبوک اولیه، کدی قرار داده شده است که خروجی مدل شما را در قالب فایلی به نام `submission.csv` ذخیره میکند. این فایل باید شامل سه ستون زیر باشد:
\* `transaction_id`: شناسه تراکنش
\* `sales_channel_pred`: پیشبینی شما برای کانال فروش (`Physical` یا `Digital`)
\* `revenue_pred`: پیشبینی شما برای میزان درآمد به دلار (یک عدد اعشاری)
## نحوهی ارسال پاسخ
، پس از اجرای سلول جوابساز (آخرین سلول فایل نوتبوک)، فایل `result.zip` ساخته شده را ارسال نمایید. این فایل زیپ به صورت خودکار شامل نوتبوک شما و فایل `submission.csv` خواهد بود.
<details class="red">
<summary>**هشدار مهم**</summary>
توجه داشته باشید که پیش از اجرای سلول جوابساز، تغییرات اعمال شده در نوتبوک را با استفاده از کلید میانبر `ctrl+s` ذخیره کرده باشید در غیر این صورت، در پایان مسابقه **نمره** شما به **صفر** تغییر خواهد کرد.
همچنین اگر از کولب برای اجرای این فایل نوتبوک استفاده میکنید، قبل از ارسال فایل `result.zip`، آخرین نسخهی نوتبوک خود را دانلود کرده و داخل فایل ارسالی قرار دهید.
</details>
### **نحوه ارزیابی**
سیستم داوری برای ارزیابی عملکرد مدل شما از ترکیب دو معیار **Log Loss** و **RMSLE** استفاده میکند. از آنجایی که در این معیارها مقدار صفر نشاندهنده خطای صفر و پیشبینی بینقص است، سیستم داوری نمره را بر اساس **تابع نمایی نزولی از خطای ترکیبی مدل شما** محاسبه میکند.
مجموع امتیازات **۱۰۰ نمره** است که خطای هر بخش با ضرایب مشخصی (۳۵٪ برای تشخیص درست کانال فروش و ۶۵٪ برای پیشبینی درآمد) در نظر گرفته میشود. فرمول محاسبه امتیاز نهایی به این شکل است:
$$S = 100 \times e^{-1.3(0.35 \times LogLoss + 0.65 \times RMSLE)}$$
که در این فرمول:
%align_right_start%
+ **$LogLoss$**: خطای تابع زیان لگاریتمی مدل شما برای طبقهبندی کانال فروش.
+ **$RMSLE$**: خطای جذر میانگین مربعات لگاریتمی مدل شما برای پیشبینی درآمد به دلار.
%align_end%
هرچه خطای مدل شما در هر دو بخش به صفر نزدیکتر شود، توان عبارت نمایی به صفر متمایل شده و نمره نهایی شما به *100* نزدیکتر خواهد شد.